有没有更简洁的方法来使用 lodash 从数组中删除条目?

Is there a more concise way to remove an entry from an array with lodash?

下面是使用 lodash 从数组 [8,2,3,4] 中删除 3 的一些尝试。从对象数组中删除一个对象的优雅语法让我想知道我是否还没有找到正确的方法。

> _.remove([8,2,3,4], 3)
  []
> x = [8,2,3,4]
  [8, 2, 3, 4]
> _.remove(x, 3)
  []
> x
  [8, 2, 3, 4]
> _.remove(x, {3: true})
  []
> x
  [8, 2, 3, 4]
> _.remove(x, [3])
  []
> x
  [8, 2, 3, 4]
> _.remove(x, function(val) { return val === 3; });
  [3]
> x
  [8, 2, 4]

是否有另一种从数组中删除匹配元素的方法类似于 _.remove(arrayOfObjs, {id:3})

是的,但没有使用 remove。您可以改为使用 pull 从数组中删除值:

Removes all provided values from array using SameValueZero for equality comparisons.

// pull modifies its argument:

x = [8, 2, 3, 4]
_.pull(x, 3)
x // => [8, 2, 4]

// pull also returns the modified array:

y = _.pull([1, 2, 3, 4, 5], 2, 3) //  => [1, 4, 5]