//首先声明一个数组
var arr = [{
name: '张三',
id: 1,
integral: 10
}, {
name: '李四',
id: 2,
integral: 20
}, {
name: '王五',
id: 3,
integral: 30
}, {
name: '王五',
id: 3,
integral: 10
}, {
name: '王五',
id: 3,
integral: 80
}, {
name: '赵六',
id: 4,
integral: 40
}, {
name: '赵六',
id: 4,
integral: 20
}, {
name: '王五',
id: 3,
integral: 90
}];
我们遍历这个数组(arr),先创建一个存储去重后的数组(res),如果res为空我们不用判断直接加进去,反之遍历res如果有id和arr当前遍历的id匹配上,直接更新数据,如果res遍历完没有匹配上,直接将arr当前数据加进res
function arrayset(arr) {
var flag = true; //判断是否有重复
var res = []; //声明一个接收去重后的数组
arr.map(function(item, index, arr) {
flag = true;
if (res.length < 1) {
res.push(item);
} else {
res.map(function(item2, index2, res) {
if (item2.id === item.id) {
item2.integral = item.integral;
flag = false;
}
});
if (flag) {
res.push(item);
}
}
});
return res;
}