如何检查数组是否包含特定对象 [英] How to check if array contains specific object

查看:79
本文介绍了如何检查数组是否包含特定对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试检查对象数组是否包含特定对象或具有特定属性的对象。

I am trying to check if array of objects contain a specific object or object with specific property.

var mainArray = [
{name:"Yahya", age:"29"},
{name:"Ahmed", age:"19"},
{name:"Mohamed", age:"10"},
{name:"Ali", age:"32"},
{name:"Mona", age:"25"},
{name:"Shady", age:"62"},
{name:"Reem", age:"11"},
{name:"Marwa", age:"52"}
]

var myObject = {name:"Yahya", age:"29"};

function check() {
if (mainArray.indexOf(myObject) > -1) {
  console.log("true")
  return true;
} else {
  console.log('false')
  return false;
}
};

<button onClick="check()">Check</button>

这里的对象与数组对象之一相同。但返回false。我尝试过的
包含在内,也无法正常工作。

here's however the object is same as one of array objects . but it's return false . I tried includes, also not working.

推荐答案

如果要检查对象数组是否包含特定的对象,则可以使用 Array.some

If you wish to check if the array of objects contain that specific object then you can use Array.some

var mainArray = [{
    name: "Yahya",
    age: "29"
  },
  {
    name: "Ahmed",
    age: "19"
  },
  {
    name: "Mohamed",
    age: "10"
  },
  {
    name: "Ali",
    age: "32"
  },
  {
    name: "Mona",
    age: "25"
  },
  {
    name: "Shady",
    age: "62"
  },
  {
    name: "Reem",
    age: "11"
  },
  {
    name: "Marwa",
    age: "52"
  }
]

var myObject = {
  name: "Yahya",
  age: "29"
};

let ans = mainArray.some(function(arrVal) {
  return myObject.name === arrVal.name;
});
console.log(ans)

您也可以使用 filter 方法。在这种情况下,它将返回一个数组计划元素。检查返回数组的长度,以验证它是否包含所需元素

You can also use filter method.In this case it will return an array of the matched elements. Check the length of the returned array to verify if it contains desired elements

var mainArray = [{
    name: "Yahya",
    age: "29"
  },
  {
    name: "Ahmed",
    age: "19"
  },
  {
    name: "Mohamed",
    age: "10"
  },
  {
    name: "Ali",
    age: "32"
  },
  {
    name: "Mona",
    age: "25"
  },
  {
    name: "Shady",
    age: "62"
  },
  {
    name: "Reem",
    age: "11"
  },
  {
    name: "Marwa",
    age: "52"
  }
]

var myObject = {
  name: "Yahya",
  age: "29"
};

let newAns = mainArray.filter(function(item) {
  return item.name === myObject.name && item.age === myObject.age
})
if (newAns.length > 0) {
  console.log(true);
} else {
  console.log(false)
}

这篇关于如何检查数组是否包含特定对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆