Javascript 如何根据每个对象内部的数组从对象数组返回某些对象?

Javascript 如何根据每个对象内部的数组从对象数组返回某些对象?,javascript,loops,iterator,Javascript,Loops,Iterator,例如,如果我想从下面的数组中获得一个包含所有具有“读取”技能的对象的新数组,我将如何做到这一点 我尝试了testResult,但只是得到了无限循环:( 谢谢你的帮助 const people = [{ name: "Jon", skills: ["reading", "acting", "drinking"], }, { name: "Tim", skills: [

例如,如果我想从下面的数组中获得一个包含所有具有“读取”技能的对象的新数组,我将如何做到这一点

我尝试了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)
var people_new=[];
for(var i=0;i
让filterd=[]
用于(人员项目){
if(项目技能包括(“阅读”){
过滤器推送(项目)
}
}
console.log(过滤)//objs的数组

如果答案对您有帮助,请将其标记为已接受。
var people_new = []; 

for(var i = 0; i < people.length; i++) 
{

   var skills = people[i].skills; 
   
   for(var s = 0; s < skills.length; s++) 
   {
      if( skills[s] == "reading" ) 
      {
         people_new.push(people[i]); 
      }
   }

}