javascript - 集群两个对象数组javascript

标签 javascript node.js

我有两个数组

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/

相关文章:

javascript - 禁用 iframe 自动加载

javascript - 将字符串和数字数组转换为数字数组

javascript - 从 promise 链内部解决可以安全吗?

node.js - token 错误: Code was already redeemed - Passport Google OAuth

javascript - Ext JS 4.2.1 加载 Controller - 最佳实践

javascript - Javascript 对象中的深度合并

javascript - 从包含的不同域 iframe : errors in Firefox & Chrome 中更改主机页面

javascript - Node.js Mongoose "object.newProperty"无法向对象添加新属性

javascript - 在 express 中将路由设置为静态文件

javascript - Node.js 为什么一次只打印一个