数组去重
const arr = [1, 3, 2, 1, 1, 2, 3];
for (let i = 0; i < arr.length; i++) {
// 去掉后面的重复项
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
对象数组去重
const arr = [
{ a: 1, b: 2 },
{ a: 1, b: 2 },
{ a: 1, b: 2, c: { a: 1, b: 2 } },
{ a: 1, b: 2, c: { a: 1, b: 2 } }
];
function isObject(val) {
return typeof val === 'object' && val !== null;
}
function equals(val1, val2) {
if (isObject(val1) && isObject(val2)) {
const key1 = Object.keys(val1);
const key2 = Object.keys(val2);
if (key1.length !== key2.length) {
return false;
}
for (const k of key1) {
if (key2.includes(k)) {
return equals(val1[k], val2[k]);
} else {
return false;
}
}
return true;
} else {
return val1 === val2;
}
}
for (let i = 0; i < arr.length; i++) {
// 去掉后面的重复项
for (let j = i + 1; j < arr.length; j++) {
if (equals(arr[i], arr[j])) {
arr.splice(j, 1);
j--;
}
}
}
打赏作者
您的打赏是我前进的动力
微信
支付宝
进阶技巧🕴️ 脚本加载失败怎么办
上一篇
评论