【发布时间】:2019-07-22 23:41:25
【问题描述】:
我在下面有一组人:
const FIRST_ARRAY = [
{
name: 'Simon',
age: 32,
occupation: 'Student'
},
{
name: 'Vera',
age: 22,
occupation: 'Developer'
}
];
我想过滤数组以根据“过滤器”对象生成一个单独的数组。
例如,如果我的过滤器是:
const FILTERS = {
age: 32,
name: 'John',
occupation: ''
};
新数组应该是空的,因为数组中没有人拥有 32 和 John 的组合。但是,如果我的过滤器是:
const FILTERS = {
age: 32,
name: 'Simon',
occupation: ''
}
返回的新人员数组将是:
const NEW_ARRAY = [
{
name: 'Simon',
age: 32,
occupation: 'Student'
}
];
如何通过迭代“过滤器”对象值来过滤人员数组?请记住,过滤器的键和值会一直动态变化。
【问题讨论】:
-
你实际上并没有问任何问题。
-
occupation: ''作为过滤器值具有误导性。省略一个属性会更合乎逻辑。 -
occupation是否需要作为过滤器? -
这不是正常的搜索/过滤吗?比如 Filter_Array.where(f=>(f.age== age || isnullorEmpty(age)) && (f.name == name || isnullorEmpty(name)) && (c.occupation ==occupation || isnullorEmpty(occupation )));用javascript修改,但逻辑应该类似
-
如果字符串为空,可以省略占用。但是它将存在于过滤器对象中。
标签: javascript arrays object filter javascript-objects