根据特定值检查 Javascript 中 Array 中对象是否存在

我有一个对象数组,并且仅当数组中尚不存在该对象时才要添加该对象。数组中的对象有2个属性,name和imageURL和2个对象只有在名称相同时才相同,因此我希望仅比较名称以检查对象是否存在 如何实现此作为条件??


斯蒂芬大帝
浏览 92回答 3
3回答

三国纷争

您可以使用Array.findlet newObj={ name:'X',imageURL:'..../'}if(!array.find(x=> x.name == newObj.name))   array.push(newObj)

慕森王

您需要使用或类似的函数进行检查,如下所示:findconst arr = [{ name: 1 }, { name: 2 }];function append(arr, newEl) {  if (!arr.find(el => el.name == newEl.name)) {    arr.push(newEl);  }}append(arr, { name: 2 }); // won't be addedconsole.log(arr);append(arr, { name: 3 }); // will be addedconsole.log(arr); Run code snippetHide resultsExpand snippet

蝴蝶刀刀

由于您没有提到使用的变量。我将假设“arr”作为数组,“person”作为要检查的新对象。const arr = [{name: 'John', imageURL:'abc.com'},{name: 'Mike', imageURL:'xyz.com'}];const person = {name: 'Jake', imageURL: 'hey.com'};if (!arr.find(      element =>       element.name == person.name)    ) {       arr.push(person);    };如果名称不相同,则不会将 person 对象推送到数组中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript