计算数组中id相同的个数
方法一:
var arr1 = [
{ id: 1, value: "20" },
{ id: 2, value: "15" },
{ id: 3, value: "12" },
{ id: 2, value: "8" },
{ id: 1, value: "11" }
]
var arr=[
{id:1,num:2},
{id:2,num:2},
{id:3,num:1},
]
function reapeat(){
var map = {}, dest = [];
for (var i = 0; i < arr.length; i++) {
var ai = arr[i];
if (!map[ai.id]) {
dest.push({
id: ai.id,
num:1,
});
map[ai.id] = ai;
} else {
for (var j = 0; j < dest.length; j++) {
var dj = dest[j];
if (dj.id == ai.id) {
dj.num = dj.num + 1;
break;
}
}
}
}
return dest
}
console.log(reapeat(arr1),"77");
方法二
var arr = [
{ nam: "张三", age: "14" },
{ nam: "李四", age: "16" },
{ nam: "张三", age: "14" },
{ nam: "赵武", age: "14" },
];
var newArr = [...new Set(arr.map((i) => i.nam))]; // 去重的时候需要注意和普通数组不同
console.log(newArr);
var list = [];
newArr.forEach((i) => {
list.push(arr.filter((t) => t.nam === i));
});
var mlist = [];
list.forEach((i, index) => {
mlist.push({
name: newArr[index],
num: i.length,
});
});
console.log(list, mlist);