letobjList=[{name:'tom',age:12},{name:'jack',age:33},{name:'zio',age:12},{name:'lolo',age:89},{name:'robin',age:16},]letageList=[12,16];letgetData=objList.filter((item)=>{returnageList.includes(item.age)});console.log(getData)如上所示,最后打印出来的数据是年龄为1216的元素,想请教各位大佬,如果只是用for循环的方法如何才能过滤对象数组得到想要的数据呢?
2 回答

紫衣仙女
TA贡献1839条经验 获得超15个赞
varnewArr=[];for(vari=0;iageList.indexOf(objList[i].age)!=-1&&(newArr.push(objList[i]));

阿波罗的战车
TA贡献1862条经验 获得超6个赞
这标题取的,完全跟算法无关好吧,就是基础判断而已letgetData=[];for(leti=0;iletitem=objList[i]; if(ageList.includes(item.age)){getData.push(item);}}console.log(getData)而filter可以简化成letgetData=objList.filter(({age})=>ageList.includes(age));2段代码的结果一样,根本没必要写for循环,反正上线都要编译成es5
添加回答
举报
0/150
提交
取消