我有一个数组,如下面代码部分中发布的那样。我想要实现的是,以这样的方式处理该数组,它应该分为基于属性“value”的值的四个不同的数组。因此,对于该 mainArray 中具有相同属性“value”值的所有条目,它们应该被插入一个新数组中。
JavaScript 中是否有任何方法或途径可以有效地完成该任务?
代码:
mainArray =
[ { key: '2', value: -20 },
{ key: '3', value: 0 },
{ key: '1', value: 10 },
{ key: '5', value: 10 },
{ key: '7', value: 10 },
{ key: '4', value: 40 },
{ key: '6', value: 40 },
{ key: '8', value: 40 } ]
代码 2:
[ { key: '2', value: -20 }] //array1
[{ key: '3', value: 0 }] //array2
[{ key: '1', value: 10 }, //array3
{ key: '5', value: 10 },
{ key: '7', value: 10 }]
[{ key: '4', value: 40 }, //array4
{ key: '6', value: 40 },
{ key: '8', value: 40 }]
试试这个,
var a =
[ { key: '2', value: -20 },
{ key: '3', value: 0 },
{ key: '1', value: 10 },
{ key: '5', value: 10 },
{ key: '7', value: 10 },
{ key: '4', value: 40 },
{ key: '6', value: 40 },
{ key: '8', value: 40 } ]
var result = Object.values(a.reduce((acc, val)=>{
if(acc[val.value]){
acc[val.value].push(val)
} else{
acc[val.value] = [val]
}
return acc
},{}))
console.log(result)
我是一名优秀的程序员,十分优秀!