Javascript Lodash通过匹配ID数组从数组中删除对象
我有一组对象,如:Javascript Lodash通过匹配ID数组从数组中删除对象,javascript,arrays,lodash,Javascript,Arrays,Lodash,我有一组对象,如: var a = [ {id: 1, name: 'A'}, {id: 2, name: 'B'}, {id: 3, name: 'C'}, {id: 4, name: 'D'} ]; 和要从阵列a中删除的Ids阵列: var removeItem = [1,2]; 我想通过匹配removietem array包含的ID,从数组a中删除对象。如何使用lodash实现 我检查了lodash的方法,但这需要一个特定的条件才能从数组中删除项。但是我有要删除的ID
var a = [
{id: 1, name: 'A'},
{id: 2, name: 'B'},
{id: 3, name: 'C'},
{id: 4, name: 'D'}
];
和要从阵列a中删除的Ids阵列:
var removeItem = [1,2];
我想通过匹配removietem array
包含的ID,从数组a
中删除对象。如何使用lodash实现
我检查了lodash的方法,但这需要一个特定的条件才能从数组中删除项。但是我有要删除的ID列表。您必须将
谓词
函数传递给。从lodash
中删除方法
var final = _.remove(a, obj => removeItem.indexOf(obj.id) > -1);
使用indexOf
方法
indexOf()方法返回给定元素所在的第一个索引
可以在数组中找到,如果不存在,则为-1
您可以使用native
javascript,使用filter
方法,该方法接受回调函数作为参数
var a=[
{id:1,名称:'A'},
{id:2,名称:'B'},
{id:3,名称:'C'},
{id:4,名称:'D'}
];
var removeItem=[1,2];
a=a.filter(函数(项){
返回removietem.indexOf(item.id)=-1;
});
控制台日志(a)
正如您提到的,您需要.remove
方法,您提到的具体条件是removietem
数组是否包含数组的选中元素的id
var removeElements = _.remove(a, obj => removeItem.includes(obj.id));
// you only need to assign the result if you want to do something with the removed elements.
// the a variable now holds the remaining array
没有lodash-a.filter(item=>removietem.indexOf(item.id)=-1)代码>