我正在尝试编辑基于另一个数组的对象数组。
例如,这是我的对象数组:
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'
}];
我尝试了 omit
和 pullByAll
但没有运气:
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/