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

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个回答

15

由于您需要在数组中检查对象属性值,因此可以尝试使用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);


对于单个值,它是有效的。如果我需要检查像["John", "Jack"]这样的值数组呢? - UI_Brain
@UI_Brain,只需忽略属性name - arr.some(i => i.includes('Jack')); - Mamun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接