我正在尝试根据匹配的字符串值将类似的 JS 对象合并到一个数组中。
从类似的东西开始
let arr1 = [{
str: "a",
num: 10
}, {
str: "a",
num: 10
}, {
str: "b",
num: 5
}, {
str: "b",
num: 2
}, {
str: "c",
num: 4
}];
删除重复str
条目并对索引求和
let arr2 = [{
str: "a",
num: 20
}, {
str: "b",
num: 7
}, {
str: "c",
num: 4
}];
我会需要打破arr1
成n
阵列,和,然后重新组合,或者是有一个简单的方法map
,并reduce
行之有效的嵌套的属性?
我只做了一个循环和一个 tmp 数组。
let arr1 = [{
str: "a",
num: 10
}, {
str: "a",
num: 10
}, {
str: "b",
num: 5
}, {
str: "b",
num: 2
}, {
str: "c",
num: 4
}];
var tarr = [];
var arr2 = [];
arr1.forEach( x => {
var i = tarr.indexOf(x.str);
if(i > -1){
arr2[i].num += x.num;
} else {
tarr.push(x.str);
arr2.push(x);
}
});
console.log(arr2);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句