lodash根据属性值在深层次对象数组中查找
要根据属性值在深层次对象数组中进行查找,可以使用lodash
的find
或filter
函数结合get
函数进行操作。
如果只希望找到满足条件的第一个对象,可以使用find
函数。如果希望找到所有满足条件的对象,可以使用filter
函数。
下面是使用find
函数的示例:
const _ = require('lodash');
const data = [
{
name: 'John',
age: 30,
address: {
city: 'New York',
country: 'USA'
}
},
{
name: 'Jane',
age: 25,
address: {
city: 'London',
country: 'UK'
}
},
{
name: 'Bob',
age: 35,
address: {
city: 'Berlin',
country: 'Germany'
}
}
];
const result = _.find(data, { 'address.country': 'UK' });
console.log(result);
上面的示例中,_.find(data, { 'address.country': 'UK' })
会在data数组中查找满足address.country
等于’UK’的第一个对象。
如果希望找到所有满足条件的对象,可以使用filter
函数:
const results = _.filter(data, { 'address.country': 'UK' });
console.log(results);
上面的示例中,_.filter(data, { 'address.country': 'UK' })
会返回一个包含所有满足address.country等于’UK’的对象的新数组。