为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

斯蒂芬大帝 2022-08-04 09:55:25
我有一个对象数组,并且仅当数组中尚不存在该对象时才要添加该对象。数组中的对象有2个属性,name和imageURL和2个对象只有在名称相同时才相同,因此我希望仅比较名称以检查对象是否存在 如何实现此作为条件??
查看完整描述

3 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

您可以使用Array.find


let newObj={ name:'X',imageURL:'..../'}

if(!array.find(x=> x.name == newObj.name))

   array.push(newObj)


查看完整回答
反对 回复 2022-08-04
?
慕森王

TA贡献1777条经验 获得超3个赞

您需要使用或类似的函数进行检查,如下所示:find





const 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 added

console.log(arr);


append(arr, { name: 3 }); // will be added

console.log(arr);

 Run code snippetHide resultsExpand snippet


查看完整回答
反对 回复 2022-08-04
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

由于您没有提到使用的变量。我将假设“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 对象推送到数组中。


查看完整回答
反对 回复 2022-08-04
  • 3 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信