【发布时间】:2021-10-25 04:43:21
【问题描述】:
我有一个对象数组:
const array = [{
"colour": "red",
"job": "student",
"title": "Mr",
},
{
"colour": "green",
"job": "student",
"title": "",
},
{
"colour": "",
"job": "teacher",
"title": "Mr",
},
{
"colour": "red",
"job": "student",
"title": "Mr",
}}]
我想比较数组中的对象。
到目前为止,我所拥有的似乎并不高效,因为我将比较索引 i=1 和 j=2 和 i=2 和 j=1,它们正在比较完全相同的对象。我正在使用 Lodash _.isEqual() 来比较对象。
const handleArrayItems = () => {
for (let i = 0; i <= array.length; i++) {
for (let j = 1; j < array.length; j++) {
if (j === i) {
continue; //to avoid comparing same object
}
if (_.isEqual(array[j],array[i])) {
return true;
}
}
}
};
根据上面返回的内容,将其传递到 if/else 语句中。
if (handleArrayItems()) {
console.log("found a duplicate item in array")
}
【问题讨论】:
-
预期输出是什么?
-
handleArrayItems()如果匹配则返回 true,如果没有对象项相同则返回 false
标签: javascript arrays ecmascript-6