我有两个数组
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));
关于javascript - 集群两个对象数组javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70285634/