我试图找到一种方法来区分每个属性的2个对象文字。
我可以使用2 ._forEach()
_.forEach(forms, form => {
_.forEach(this.sections, section => {
if(form.section === section.name){
section.inProgress = true;
}
});
});
然而,这似乎并不理想。我尝试过使用_.differenceBy
_.differenceBy(forms, this.sections, 'x');
但我不能通过属性名称来区分我想要检查的“名称”是其中一个数组中的name
和另一个数组中的section
。
我想使用像
这样的东西_.differenceBy(forms, this.sections, 'section' === 'name');
lodash中有什么内容可供选择吗?
答案 0 :(得分:9)
您可以将_.differenceWith()
与引用每个数组中指定对象属性的比较器一起使用:
var forms = [{ 'name': 'somethingA' }, { 'name': 'somethingB' }];
var sections = [{ section: 'somethingB' }];
var result = _.differenceWith(forms, sections, function(arrValue, othValue) {
return arrValue.name === othValue.section;
});
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>