如何检查对象数组是否包含字符串

时间:2019-05-14 13:54:55

标签: javascript ecmascript-6

假设我有一个对象数组:

let arr = [
   {
    name: 'Jack',
    id: 1
   },
   {
    name: 'Gabriel',
    id: 2
   },
   {
    name: 'John',
    id: 3
   }
]

我需要使用以下方法检查该数组是否包含名称“ Jack”:

if (arr.includes('Jack')) {
   // don't add name to arr

} else {
  // push name into the arr

}

但是arr.includes('Jack')返回false,如何检查对象数组是否包含名称?

1 个答案:

答案 0 :(得分:1)

由于您需要检查数组中的对象属性值,因此可以尝试使用Array​.prototype​.some()

  

some()方法测试数组中的至少一个元素是否通过了由提供的函数实现的测试。它返回一个布尔值。

let arr = [
   {
    name: 'Jack',
    id: 1
   },
   {
    name: 'Gabriel',
    id: 2
   },
   {
    name: 'John',
    id: 3
   }
]
var r = arr.some(i => i.name.includes('Jack'));
console.log(r);