Sac*_*ria 2 javascript arrays object filter javascript-objects
我有以下一组人:
const FIRST_ARRAY = [
{
name: 'Simon',
age: 32,
occupation: 'Student'
},
{
name: 'Vera',
age: 22,
occupation: 'Developer'
}
];
Run Code Online (Sandbox Code Playgroud)
我想过滤数组以生成基于“过滤器”对象的单独数组。
例如,如果我的过滤器是:
const FILTERS = {
age: 32,
name: 'John',
occupation: ''
};
Run Code Online (Sandbox Code Playgroud)
新数组应该为空,因为数组中没有人拥有 32 和 John 的组合。但是,如果我的过滤器是:
const FILTERS = {
age: 32,
name: 'Simon',
occupation: ''
}
Run Code Online (Sandbox Code Playgroud)
返回的新人员数组将是:
const NEW_ARRAY = [
{
name: 'Simon',
age: 32,
occupation: 'Student'
}
];
Run Code Online (Sandbox Code Playgroud)
如何通过迭代“过滤器”对象值来过滤人员数组?请记住,过滤器键和值会一直动态变化。
您可以按如下方式进行过滤:
const FIRST_ARRAY = [
{
name: 'Simon',
age: 32,
occupation: 'Student'
},
{
name: 'Vera',
age: 22,
occupation: 'Developer'
}
];
const FILTERS = {
name: 'Simon',
age: 32,
occupation: ''
};
const filtered = FIRST_ARRAY.filter(person => Object.entries(FILTERS)
.every(([key, val]) => val !== '' ? person[key] === val : true));
console.log(filtered);Run Code Online (Sandbox Code Playgroud)