Lodash / Underscore:在一个对象数组中检查数组中的值

时间:2014-12-01 23:25:12

标签: javascript underscore.js lodash

令人困惑的标题,解释的唯一简单方法是向您展示我的目标:

var user = [
  {foo:"test",bar:1},
  {foo:"test2",bar:2}
];

var items = [{foo:"test",bar:1},{foo:"test4",bar:4},{foo:"test5",bar:5}]

我想要的是从items中选择<{1}}中的一个项目,然后将其添加到user。在这种情况下,user对象最终看起来像:

user

我已经尝试了各种各样的_.filter,_.contains等组合,但无法弄明白。任何帮助将非常感谢!

1 个答案:

答案 0 :(得分:1)

逻辑如下:您想要找到user数组中未包含的第一个项目。

所以你可以做到以下几点:

var item = _.find(items, function (item) {
    return !_.findWhere(user, item);
});

jsFiddle Demo