这会将replacement_codes过滤为具有代码属性的项目集合,该代码属于replacement_codes。代码按预期工作,但不太可读。
return this.replacement_codes.filter((code) => {
let length = this.items.length;
for (let index = 0; index < length; index++) {
if (this.items[index].code === code) {
return false;
}
}
return true;
});
我试图找出如何让lodash为我做这件事。
以下代码有效。现在我无法弄清楚如何使用lodash获取布尔结果来检查集合是否包含具有给定值的属性。
return _.filter(this.replacement_codes, (code) => {
let length = this.replacements.length;
for (let index = 0; index < length; index++) {
if (this.replacements[index].code === code) {
return false;
}
}
return true;
});
进一步深化:
let items = [
{
code: 'a',
value: 'something1'
},
{
code: 'b',
value: 'something2'
},
{
code: 'c',
value: 'something3'
},
{
code: 'd',
value: 'something4'
},
];
let array_to_filter = ['a', 'd', 'z', 'x'];
我希望过滤后的数组为[&#39; z&#39;,&#39; x&#39;];
答案 0 :(得分:0)
我相信你可以使用_.differenceWith
来解决这个问题let items = [
{
code: 'a',
value: 'something1'
},
{
code: 'b',
value: 'something2'
},
{
code: 'c',
value: 'something3'
},
{
code: 'd',
value: 'something4'
},
];
let array_to_filter = ['a', 'd', 'z', 'x'];
let r = _.differenceWith(array_to_filter, items, (f, i) => f == i.code );
console.log(r)