javascript - Javascript在没有for循环的情况下在对象数组值中查找数组元素
问题描述
是否可以在没有 for 循环的情况下查找arr
元素?arrofobjs
由于'Buddy'
在两者中arr
,arrofobjs
我希望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
解决方案
您必须访问该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);
推荐阅读
- flutter - 一旦视图更改,颤动数字时钟小部件就会导致错误
- db2 - 无法删除 db2 表上的索引
- docker-compose - 如何标记和使用 docker-compose 使用的环境变量
- javascript - jQuery / Javascript - 当另一个元素离页更新时,如何防止当前单击的项目失去焦点
- vue.js - 将其设置为已安装的文档就绪(VUEJS)时数据未更新
- javascript - Netlify lambda 函数正在工作,但得到未定义的响应和状态 500
- reactjs - 在 React 中检索动态下拉选择
- python - 数据未保存在模型中
- laravel - 来自 GuzzleHttp 的 API 服务器阻止请求
- r - R - 过滤表以返回仅包含所有列中的所有搜索词的行