Javascript多个过滤器数组 [英] Javascript multiple filters array
本文介绍了Javascript多个过滤器数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的问题是对该问题的扩展 javascript过滤器数组多个条件
从这个问题开始,如果过滤器对象是
My question is extension to this question javascript filter array multiple conditions
from that question if filter object is
{地址:'England',名称:'Mark'};
并且数组为
var users = [{
name: 'John',
email: 'johnson@mail.com',
age: 25,
address: 'USA'
},
{
name: 'Tom',
email: 'tom@mail.com',
age: 35,
address: 'England'
},
{
name: 'Mark',
email: 'mark@mail.com',
age: 28,
address: 'England'
}
];
所以答案是
[
{
"name": "Mark",
"email": "mark@mail.com",
"age": 28,
"address": "England"
}
]
这绝对好,但我的问题是必须为过滤器对象属性值过滤数组
例如我的过滤器对象将是 {address:'England',name:''}
,现在它必须为所有名称和地址England
which is absolutely fine but my question is array has to be filtered for the filter object properties value
for example my filter object will be {address: 'England', name: ''}
now this has to filter the array for all names and address England
推荐答案
您将对用户以及每个过滤器对象的条目使用过滤器
You'd use filter on users and every on the filter object's entries
const filter = {address: 'England', name: 'Mark'};
const res = users.filter(user =>
Object.entries(filter)
.every(([k,v]) => v === '' || user[k] === v)
);
console.log(res);
<script>
var users = [{
name: 'John',
email: 'johnson@mail.com',
age: 25,
address: 'USA'
},
{
name: 'Tom',
email: 'tom@mail.com',
age: 35,
address: 'England'
},
{
name: 'Mark',
email: 'mark@mail.com',
age: 28,
address: 'England'
}
];
</script>
这篇关于Javascript多个过滤器数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文