繁体   English   中英

如何在 Javascript 中组合具有相同值的数组

[英]How to combine array that has the same values in Javascript

我有以下数组:

0: {x: "/", y: 8}
1: {x: "/a", y: 7}
2: {x: "/a", y: 2}
3: {x: "/", y: 1}

我怎样才能把它变成:

0: {x: "/", y: 9}
1: {x: "/a", y: 9}

相同的 X 值加上它们的 Y 值。

它应该只寻找相同的X值,如果它们相同,它将它们组合并将它们的Y加在一起。

您可以将Array#reduce与 object 一起使用来存储每个x的值。

 let arr = [{x: "/", y: 8},{x: "/a", y: 7},{x: "/a", y: 2},{x: "/", y: 1}]; let res = Object.values(arr.reduce((acc,{x,y})=>{ (acc[x] = acc[x] || {x, y:0}).y += y; return acc; }, {})); console.log(res);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM