arr = [{
status: "1",
name: "张三",
origin : [1]
},{
status: "1",
name: "张三",
origin : [2]
},{
status: "2",
name: "张三",
origin : [3]
},{
status: "2",
name: "张三",
origin : [4]
}]
怎样合并为
arr = [{
status: "1",
name: "张三",
origin : [1,2]
},{
status: "2",
name: "张三",
origin : [3,4]
}]
题主要的代码如下,
arr = [{
status: "1",
name: "张三",
origin: [1]
}, {
status: "1",
name: "张三",
origin: [2]
}, {
status: "2",
name: "张三",
origin: [3]
}, {
status: "2",
name: "张三",
origin: [4]
}]
var newArr = [], kv = {};
arr.forEach(item => {
var key = item.status + item.name;
if (kv[key] !== undefined) {
kv[key].origin = kv[key].origin.concat(item.origin);
}
else {
kv[key] = item;
newArr.push(item);
}
});
console.log(JSON.stringify(newArr, null, 2))
以name作为key吗?定义一个新的数组,使用循环嵌套判断新数组中是否存在,如果存在向数组push一个新的元素。