洛达什/下划线 :检查数组中的对象数组中的值

Lodash/Underscore : Check for a value within an array, in an array of objects

本文关键字:数组 对象 检查 下划线      更新时间:2023-09-26

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

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中选择一个尚未在user中的项目,并将其添加到user中。在这种情况下,user对象最终将如下所示:

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

我已经尝试了各种_.filter,_.contains等...组合,但不能完全弄清楚。任何帮助将不胜感激!

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

因此,您可以执行以下操作:

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

jsFiddle 演示