JavaScript 数组对象去重:高效检测重复对象
使用循环遍历数组,比较对象的属性值是否相同,如果存在相同的对象,则返回 true,否则返回 false。
以下是一个示例代码:
function hasDuplicateObject(arr) {
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (isEqual(arr[i], arr[j])) {
return true;
}
}
}
return false;
}
function isEqual(obj1, obj2) {
const keys1 = Object.keys(obj1);
const keys2 = Object.keys(obj2);
if (keys1.length !== keys2.length) {
return false;
}
return keys1.every(key => obj1[key] === obj2[key]);
}
上面的代码中,hasDuplicateObject 函数接受一个数组作为参数,循环遍历数组中的所有对象,调用 isEqual 函数比较两个对象是否相同。如果存在相同的对象,则返回 true,否则返回 false。
isEqual 函数接受两个对象作为参数,比较它们的所有属性是否相同。如果两个对象的属性数量不同,则它们不相等。使用 Object.keys 方法获取两个对象的属性名,然后使用 every 方法遍历所有属性,比较它们的属性值是否相同。如果所有属性的值都相同,则两个对象相等。
原文地址: https://www.cveoy.top/t/topic/nAz7 著作权归作者所有。请勿转载和采集!