让我们说我们还有一个包含空字符串的数组
const arr = [
{ value: 1, name: "king" },
{ value: 2, name: "master" },
{ value: 10, name: "lisa" },
{ value: 4, name: "lisa" },
{ value: 5, name: "jim" },
{ value: 6, name: "master" },
{ value: 1, name: "jim" },
{ value: 3, name: "" },
{ value: 2, name: "" },
]
我想删除重复的名称,并将其值添加到同一数组或另一个数组中。 所需的输出:
[
{ value: 1, name: "king" },
{ value: 8, name: "master" },
{ value: 14, name: "lisa" },
{ value: 6, name: "jim" },
{ value: 5, name: "" },
]
答案 0 :(得分:0)
通过简单地循环检查重复性,可以减少数组。
arr = [
{ value: 1, name: "king" },
{ value: 2, name: "master" },
{ value: 10, name: "lisa" },
{ value: 4, name: "lisa" },
{ value: 5, name: "jim" },
{ value: 6, name: "master" },
{ value: 1, name: "jim" },
{ value: 3, name: "" },
{ value: 2, name: "" },
];
var a = new Set();
var array2 = [];
for (i = 0; i < arr.length; i++) {
if(!a.has(arr[i].name)){
array2.push(arr[i]);
a.add(arr[i].name);
}
else{
var name = arr[i].name;
for (j = 0; j < array2.length; j++) {
if(array2[j].name == name ){
array2[j].value += arr[i].value;
}
}
}
}
console.log(array2);