我正在寻找一种好方法来检查对象数组中是否存在对象。当所有键/值都存在于该数组的同一对象中时,预期结果为true。

我通过浏览stackoverflow(例如使用jQuery.grep或Find object by id in an array of JavaScript objectsFind a value in an array of objects in Javascript)找到的答案返回找到的对象。我正在寻找的是 bool(boolean) 结果(不是找到的对象)。

我知道我可以循环访问所有数组元素,然后比较每个值.... etc

但是我的意思是,是否有一种方法可以使用这样的JS方法:

var listOfObjecs = [
	{id: 1, name: "Name 1", score: 11},
	{id: 2, name: "Name 2", score: 22},
	{id: 3, name: "Name 3", score: 33},
	{id: 4, name: "Name 4", score: 44},
	{id: 5, name: "Name 5", score: 55},
];

var isObjectExist = function(search){
  return listOfObjecs.filter(function(obj){
     if(obj.id===search.id && obj.name===search.name && obj.score===search.score){
          return true;
     }
     return false;
  });
}

console.log( isObjectExist({id: 3, name: "Name 3", score: 33}) );
//outputs the found object [{id: 3, name: "Name 3", score: 33}]

console.log( isObjectExist({id: 9, name: "Name 3", score: 33}) );
//outputs an empty object []


这是因为:



如果没有本机JavaScript方法(返回true或false),如何更新isObjectExist()函数以返回true或false?

最佳答案

Array.prototype.some 方法:

07-24 09:44
查看更多