首页 > 解决方案 > 如何根据每个对象内的数组从对象数组中返回某些对象?

问题描述

例如,如果我想从下面的数组中获取具有“读取”技能的所有对象的新数组,我该怎么做?

我尝试了 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])
    }
})

})

标签: javascriptloopsiterator

解决方案


尝试这个

people.filter((e) => e.skills.indexOf('reading') > -1)

推荐阅读