我正在试图弄清楚如何使用lodash过滤以下对象:
contacts = {
A: [
{ name: "Albert", age: 16 },
{ name: "Arthur", age: 24}
],
B: [
{ name: "Bob", age: 33 }
],
C: [],
D: [],
...
};
我希望能够在保持相同结构的同时按名称(包含)过滤联系人,我不知道告诉lodash在第二层寻找任何对象。
知道如何解决这个问题吗?
答案 0 :(得分:0)
使用map
和filter
var nameToSearch = "Bob";
contacts = Object.keys(contacts).map( s => contacts[s].filter( t => t.name == nameToSearch ) );
答案 1 :(得分:0)
试试这个
const contacts = {
A: [
{ name: "Albert", age: 16 },
{ name: "Arthur", age: 24}
],
B: [
{ name: "Bob", age: 33 },
{ name: "Ahn", age: 20 },
],
C: [],
D: []
};
const obj = {};
Object.keys(contacts).forEach(index => {
obj[index] = contacts[index].filter(person =>
person.name.includes("th"));
});
console.log(obj);