javascript - 集群两个对象数组javascript

我有两个数组

array1 = ['jan', 'mar', 'dec', 'jan', 'sep', 'nov', 'mar'];
array2 = [3, 5, 5, 4, 5, 8, 2];

正如所见,每个月都可以出现不止一次。

id 喜欢对这些数据进行聚类/排序,使其具有 2 个数组,显示月份和相应的总值,本质上,获取与一月份对应的所有值,对它们求和并将它们输出到另一个数组,二月应该对所有二月的值求和还有一月的值(value)等等。以及包含月份的第四个数组,没有重复。像

array3 = ['jan', 'mar', 'sep', 'nov', 'dec'];
array4 = [7, 14, 19, 24, 32]; //totals

最佳答案

一种方法是创建一个临时的普通对象,以月份名称和一个初始设置为 0 的相应整数为键。然后将这些整数添加到第二个数组中出现的值,对应于月份。最后将该对象分解为其键和值:

var array1=['jan','mar','dec','jan','sep','nov','mar'];
var array2=[3,5,5,4,5,8,2];

var temp = Object.fromEntries(array1.map(month => [month, 0]));
array1.forEach((month, i) => temp[month] += array2[i]);
array1 = Object.keys(temp);
array2 = Object.values(temp);

console.log(JSON.stringify(array1));
console.log(JSON.stringify(array2));

https://stackoverflow.com/questions/70285634/

相关文章:

android-jetpack-compose - Jetpack 撰写 Justified 和 R

java - 当我们调用 function(2) 时,为什么这个函数返回 83 而不是 5?

phpunit - 在 php 8.1.0 上使用 phpunit 9.4 捕获警告、通知和弃用

rust - 在 ".map(|x| *x)"之前是否有更好的 ".collect()"替代品?

php - 为什么php artisan make :factory not Generating

javascript - 如何使用顺风向表格添加间距

graphql - 为什么 graphcms graphql 给我一个 403 错误?

python - 如何将文本文件转换为json文件?

amazon-web-services - Docker 推送错误保存凭据 : error stor

spring - 摆脱 spring-boot-starter-data-mongodb 对易受攻击