javascript - 如何使用 Lodash 从基于另一个数组的数组中删除对象?

标签 javascript underscore.js lodash

我正在尝试编辑基于另一个数组的对象数组。

例如,这是我的对象数组:

var objs = [{ 
   attending: 0, user: '123' 
}, { 
   attending: 0, user: '456' 
}, { 
   attending: 0, user: '789' 
}];

这是我的数组:

var arr = ['945', '456']

由于 456 存在于 arr 中,我想从 obj 中删除该对象。因此最终结果是:

var objs = [{ 
   attending: 0, user: '123' 
}, { 
   attending: 0, user: '789' 
}];

我尝试了 omitpullByAll 但没有运气:

var newObj = _.omit(obj, arr);
var newObj = _.pullAllBy(obj, arr, 'user');

使用 Lodash 时最好的方法是什么?我知道为此创建一个 Javascript 函数非常简单,尽管我的应用程序要求经常执行此操作,因此拥有一个可访问的简单 Lodash 函数会很好。

最佳答案

你可以使用原生js方法来做到这一点。

var newObj = objs.filter(function(obj) {
  return arr.indexOf(obj.user) != -1
});

如果你使用 ES6,那就更简单了

var newObj = objs.filter(obj => arr.indexOf(obj.user) != -1);

this video这很好地解释了这个概念。

关于javascript - 如何使用 Lodash 从基于另一个数组的数组中删除对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37519375/

相关文章:

lodash - 你能用英语解释一下 Lodash Iteratee 函数吗?

javascript - 如何使用 Google map 绘制多条折线?

javascript - 在声明范围之外使用局部变量;为什么这有效?

javascript - 使用 LoDash 或类似工具规范化/展平 JS 数组?

javascript - 使用 underscore.js 和 reduce 对数组内的对象求和

javascript - 使用 Javascript、jQuery 和 underscore.js 从多维数组中删除重复项

javascript - 如何将 Lodash orderby 与自定义函数一起使用?

javascript - Express Validator 来验证日期时间

javascript - 如何将 `<span id="myspanid"></span>` 插入 html 标签之间的所有内容?

javascript - Backbone 下划线复选框传递值问题