【发布时间】:2019-01-26 08:32:27
【问题描述】:
我想找到一个更好、更优雅的解决方案,而不是使用 2 次迭代来查找对象中的值。我查看了在数组中搜索的函数,例如 find、indexOf,但想知道我可以在不使用 for 或 forEach 的情况下搜索对象。
假设我想找到所有游泳者。到目前为止我得到了什么。
members = [
{ name: "Sue", hobby: ["Swimming", "Running", "Dancing"] },
{ name: "Sam", hobby: ["Cars", "Travelling"] },
{ name: "John", hobby: ["Reading", "Swimming"] },
{ name: "Rob", hobby: ["Running", "Coding"] },
];
function findSwimmers(members, hobby) {
let swimmers = [];
members.forEach(function (e){
e.hobby.forEach(function (element){
if (element.toLowerCase() === hobby.toLowerCase()) {
swimmers.push(e);
}
});
});
return swimmers;
}
【问题讨论】:
-
任何 搜索数组的方法都会以某种方式使用循环...
标签: javascript arrays object search