Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Lodash通过匹配ID数组从数组中删除对象_Javascript_Arrays_Lodash - Fatal编程技术网

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)