javascript - 如何根据每个对象内的数组从对象数组中返回某些对象?
问题描述
例如,如果我想从下面的数组中获取具有“读取”技能的所有对象的新数组,我该怎么做?
我尝试了 testResult 但只是得到了无限循环:(
感谢所有和任何帮助!
const people = [{
name: "Jon",
skills: ["reading", "acting", "drinking"],
},
{
name: "Tim",
skills: ["rowing", "hockey", "reading"],
},
{
name: "Lucy",
skills: ["business", "learning", "hockey"],
},
{
name: "Michelle",
skills: ["running", "business", "sleeping"],
},
{
name: "Michael",
skills: ["making friends", "surfing"],
}
]
预期收益:
[{
name: "Jon",
skills: ["reading", "acting", "drinking"],
},
{
name: "Tim",
skills: ["rowing", "hockey", "reading"],
}]
const testResult = testArray.map((obj) => {
obj.skills.map((skill) => {
if (skill === "reading") {
setPeople([...people, obj])
}
})
})
解决方案
尝试这个
people.filter((e) => e.skills.indexOf('reading') > -1)
推荐阅读
- r - 从包含星期数、星期几的数据框中获取日期(yyyy-mm-dd)
- openlayers-3 - api3.geo.admin.ch v 3.6.0 OpenLayers 3 DragBox 在使用 firefox 时不显示在地图上(在 chrome 和 IE edge 上运行良好)
- android - 我想设置字段值以使用 Volley RequestQueue 但不起作用
- flutter - Flutter、NestedScrollView 和包裹体效果
- json - 合并从 Json 文档生成的两个 JSON Schemata
- python - 在 Micropython 中以文本分隔符格式保存文件
- php - 在实体中创建子对象而不需要额外的 SQL 表
- c# - 如何使用实体框架正确填充表
- reactjs - React,如何测试关键道具?
- android-studio - 升级到 Android Studio 4.1.3 后,Android 模拟器几乎每周需要擦除一次数据