Lodash差异可供选择

时间:2017-03-07 16:49:21

标签: lodash

我试图找到一种方法来区分每个属性的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中有什么内容可供选择吗?

1 个答案:

答案 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>