问题:数组对象去重
var arr = [{name: ‘a’,id: 1}, {name: ‘a’,id: 2}, {name: ‘b’,id: 3}, {name: ‘c’,id: 4}, {name: ‘c’,id: 6}, {name: ‘b’,id: 6}, {name: ‘d’,id: 7}];
对数组对象name进行去重处理, 结果显示为:
[{name: ‘a’,id: 1}, {name: ‘b’,id: 3}, {name: ‘c’,id: 4}, {name: ‘d’,id: 7}];
解决方式:
var arr = [{name: 'a',id: 1}, {name: 'a',id: 2}, {name: 'b',id: 3}, {name: 'c',id: 4},{name: 'c',id: 6}, {name: 'b',id: 6}, {name: 'd',id: 7}];
function deWeight() {for (var i = 0; i < arr.length - 1; i++) {for (var j = i + 1; j < arr.length; j++) {if (arr[i].name == arr[j].name) {arr.splice(j, 1);//因为数组长度减小1,所以直接 j++ 会漏掉一个元素,所以要 j--j--;}}}return arr;
}
var newArr = deWeight();
console.log('%c%s', 'color:red;', '方法一:es5,newArr', newArr);