测试:数据
let arr = [
{ a: 1, b: 2 },
{ b: 3, a: 4 },
{
b: 2, a: 1
}
]
结果
function unique(arr) {const newArr = [...arr]for (let i = 0; i < newArr.length; i++) {for (let j = i + 1; j < newArr.length; j++) {if (this.duibi(newArr[i], newArr[j])) {newArr.splice(j, 1);j--;}}}return newArr;// return Array.from(new Set(arr));}function duibi(val1, val2) {if (isObject(val1) && isObject(val2)) {if (val1.length != val2.length) {return false;}let key1 = Object.keys(val1);let key2 = Object.keys(val2);for (let k1 of key1) {if (!key2.includes(k1)) {return false;}if (!duibi(val1[k1], val2[k1])) {return false;}}return true;} else {return val1 == val2}}//是否为集合function isObject(obj) {return obj !== null && typeof obj === 'object';}