首页 > 解决方案 > Javascript在没有for循环的情况下在对象数组值中查找数组元素

问题描述

是否可以在没有 for 循环的情况下查找arr元素?arrofobjs由于'Buddy'在两者中arrarrofobjs我希望found返回true

var arrofobjs = [ { type: 'Dog', name: 'Buddy', color: 'White' },
  { type: 'Cat', name: 'Misty', color: 'Black' },
  { type: 'Dog', name: 'Max', color: 'Black' }, ]
var arr = [ 'Buddy', 'Oscar' ]
var found = Object.values(arrofobjs).some(r=> arr.includes(r)) //returns false, but would return true if arrofobj was an object

标签: javascriptarrays

解决方案


您必须访问该name 属性

var arrofobjs = [ { type: 'Dog', name: 'Buddy', color: 'White' },
  { type: 'Cat', name: 'Misty', color: 'Black' },
  { type: 'Dog', name: 'Max', color: 'Black' }, ]
var arr = [ 'Buddy', 'Oscar' ]
var found = Object.values(arrofobjs).some(r => arr.includes(r.name))
console.log(found);

由于arrofobjs是一个数组,因此您可以some使用destructing直接应用该方法。

var arrofobjs = [ { type: 'Dog', name: 'Buddy', color: 'White' },
{ type: 'Cat', name: 'Misty', color: 'Black' },
{ type: 'Dog', name: 'Max', color: 'Black' }, ]
var arr = [ 'Buddy', 'Oscar' ]
var found = arrofobjs.some(({name}) => arr.includes(name))
console.log(found);


推荐阅读