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

How see if array contains object without using JQuery

本文关键字:数组 是否 对象 包含 情况下 JQuery      更新时间:2023-09-26

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

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

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

v ar someId = 2;

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

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

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

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

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

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

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

您可以尝试以下

var filteredArray = myArray.filter(function(item) {
    return item.id == someId
});
if(filteredArray.length > 0) {
   console.log("Found");
}

香草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);