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

时间:2016-01-13 15:46:46

标签: javascript

我有一个如下所示的数组:

var myArray = [
  {'id' : 1, 'name' : 'test1'},
  {'id' : 2, 'name' : 'test2'},
  {'id' : 3, 'name' : 'test3'}
];

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

V ar someId = 2;

如何检查myArray是否包含Object,其ID是否等于someId

3 个答案:

答案 0 :(得分:5)

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

var isThere = myArray.some(function(element) {
  return element.id == someId;
});

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

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

var theElement = myArray.find(function(element) {
  return element.id == someId;
});

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

答案 1 :(得分:0)

您可以尝试以下

var filteredArray = myArray.filter(function(item) {
    return item.id == someId

});

if(filteredArray.length > 0) {
   console.log("Found");
}

答案 2 :(得分:0)

Vanilla JS:

var myArray = [
  {'id' : 1, 'name' : 'test1'},
  {'id' : 2, 'name' : 'test2'},
  {'id' : 3, 'name' : 'test3'}
];

function findby(arr, key, val){
    for(var i=0; i<arr.length; i++){
       if(arr[i][key] === val){
           return arr[i];
        }
    }
    return null;
}

var found = findby(myArray, "id", 2);
alert(found.name);