【发布时间】:2020-03-04 14:59:47
【问题描述】:
我在尝试获得准确的输出时遇到了一点问题。
const data = [{
name: 'Alex Young',
country: 'SE',
nID: 424
address: 'some address 12'
},{
name: 'Martha Lewis',
country: 'PT',
nID: 312,
address: 'an address 49'
},{
name: 'Sophie Jones',
country: 'NL',
nID: 36,
address: 'other address 3129'
}];
const filter = '12';
const keysToEvaluate = ['name', 'country', 'address'];
对于给定的 data,我想只评估给定的 keysToEvaluate 并输出值包含 filter 的所有对象。
预期输出:
[{
name: 'Alex Young',
country: 'SE',
nID: 424
address: 'some address 12'
},{
name: 'Sophie Jones',
country: 'NL',
nID: 36,
address: 'other address 3129'
}]
TIA
【问题讨论】:
-
基本上:
const result = array.filter(entry => keysToEvaluate.some(key => entry[key].includes(filter)));我假设 any 匹配意味着应该包含该对象。如果 所有 属性都应与要保留的对象匹配,请将some更改为every。
标签: javascript json filter lodash