如何在不使用JQuery的情况下查看数组是否包含对象

0 javascript

我有一个看起来像这样的数组:

var myArray = [
  {'id' : 1, 'name' : 'test1'},
  {'id' : 2, 'name' : 'test2'},
  {'id' : 3, 'name' : 'test3'}
];
Run Code Online (Sandbox Code Playgroud)

然后我有一个包含一些id的变量:

var someId = 2;

如何检查是否myArray包含一个Object,谁的id等于someId

Poi*_*nty 5

您可以使用以下.some()方法:

var isThere = myArray.some(function(element) {
  return element.id == someId;
});
Run Code Online (Sandbox Code Playgroud)

如果回调为某个元素返回,则该.some()方法返回一个布尔值.一旦发生这种情况,迭代就会停止.truetrue

如果你想要数组中的元素而不仅仅是是/否答案,你可以将相同类型的回调传递给.find():

var theElement = myArray.find(function(element) {
  return element.id == someId;
});
Run Code Online (Sandbox Code Playgroud)

当该回调返回时true,迭代停止并.find()返回元素本身.如果没有找到,则返回undefined.