Javascript Lodash-如何从数组中提取项并从初始数组中移除?

Javascript Lodash-如何从数组中提取项并从初始数组中移除?,javascript,arrays,lodash,Javascript,Arrays,Lodash,我想知道是否存在一种更简单的方法,可以用lodash做如下相同的事情: let items = [ { id: 1 }, { id: 2 }, { id: 3 } ] let removedItem = _.pullAt(items, [_.findIndex(items, { id: 1 })])[0] // { id: 1 } let rest = items; // [{ id: 2 }, { id: 3 }] 您可以使用该方法改变数组并从中排除元素 let项目=[ {id:1

我想知道是否存在一种更简单的方法,可以用lodash做如下相同的事情:

let items = [
    { id: 1 }, { id: 2 }, { id: 3 }
]
let removedItem = _.pullAt(items, [_.findIndex(items, { id: 1 })])[0] // { id: 1 }
let rest = items; // [{ id: 2 }, { id: 3 }]
您可以使用该方法改变数组并从中排除元素

let项目=[
{id:1},{id:2},{id:3}
]
//原地变异
_.删除(项目,{id:1});
console.log(项目);//[{id:2},{id:3}]

您可以使用lodash筛选器返回新数组:

let rest = _.filter(items, {id: 1});
类似地,您可以只使用js filter函数

或者使用remove将其从原始阵列中删除:

_.remove(items, {id: 1});

不需要洛达斯。如果您只想删除第一项:

let items = [
    { id: 1 }, { id: 2 }, { id: 3 }
];

items.shift(); // { id: 1 }

let rest = items; // [{ id: 2 }, { id: 3 }]

否则,
filter
将是从列表中删除特定项的一个好方法,正如Tori所建议的那样。

是否要在适当的位置更改数组?@VLAZ是的,我想要它您是否还想保留对元素的引用,还是只想删除它?@VLAZ我只想删除它
let items = [
    { id: 1 }, { id: 2 }, { id: 3 }
];

items.shift(); // { id: 1 }

let rest = items; // [{ id: 2 }, { id: 3 }]