【发布时间】:2019-04-29 15:43:18
【问题描述】:
假设我们有一个名为汽车的对象数组:
var cars = [
{color: 'Black', horsePower: 120, type: 'suv'},
{color: 'Red', horsePower: 90, type: 'cabriolet'},
{color: 'Yellow', horsePower: 200, type: 'cabriolet'},
{color: 'Black', horsePower: 350, type: 'suv'}
];
我想通过多个条件过滤这个数组。为此,我创建了一个过滤器对象。
var filters = {
color: ['Black', 'Red'],
horsePower: [90],
type: []
};
我试过的是:
var output = cars.filter((elem) => {
for (var key in filters) {
if (filters[key].length == 0 || filters[key].indexOf(elem[key]) < 0) {
return false;
}
}
return true;
});
console.log(output);
我希望得到的结果是汽车的第二个索引,但我得到的是一个空数组。
我做错了什么?
【问题讨论】:
-
type: []filters[key].length == 0 -
这是作业吗?似乎与stackoverflow.com/questions/55852089/… 几乎一模一样
-
@JonasWilms 谢谢你的朋友!
标签: javascript arrays filtering