前言
js数组对象去重
let arr = [
{ name: 'test', status: 'success' },
{ name: 'dev', status: 'success' },
{ name: 'prod', status: 'fail' },
{ name: 'sand', status: 'waiting' },
{ name: 'prod', status: 'fail' },
{ name: 'dev', status: 'success' }
]
function objHeavy(arr) {
var newArr = []; //存新数组
var obj = {}; //存处理后转成字符串的对象
for (var i = 0; i < arr.length; i++) {
var keys = Object.keys(arr[i]);
keys.sort(function (a, b) {
return (Number(a) - Number(b));
});
var str = '';
for (var j = 0; j < keys.length; j++) {
str += JSON.stringify(keys[j]);
str += JSON.stringify(arr[i][keys[j]]);
}
if (!obj.hasOwnProperty(str)) {
newArr.push(arr[i]);
obj[str] = true;
}
}
return newArr;
}
console.log(this.objHeavy(arr));