如何使用lodash _而不使用带数组的运算符而不是多个args

Mon*_*key 8 javascript arrays lodash

我期待没有函数的lodash可以获取一个值数组,而是需要多个args.如何将数组传递给它并使其工作.

例:

var bar = {
    foo: ['a', 'b', 'c']
};


_.without(bar.foo, 'c', 'a'); // works;
_.without(bar.foo, ['c', 'a']); // doesn't work
Run Code Online (Sandbox Code Playgroud)

我的排除列表必须作为数组或变量传入,因此知道如何使用带有without函数的数组会很有用.

the*_*eye 10

在这种情况下,您可以按原样使用值数组 _.difference,如下所示

console.log(_.difference(bar.foo, ['a', 'c']));
[ 'b' ]
Run Code Online (Sandbox Code Playgroud)

  • 这可能是做我需要的更好的方法,但我加入了亚历山大的回答,因为它是针对确切问题的.但是,我将在我的实际项目中使用您的解决方案.谢谢! (6认同)

小智 8

如果你在一个环境中,你可以使用ES6传播经营者,...那么,

.without(bar.foo, ...['c', 'a']);
Run Code Online (Sandbox Code Playgroud)


Ale*_* T. 4

您可以使用.apply

var bar = {
    foo: ['a', 'b', 'c']
};


console.log(_.without.apply(_, [bar.foo].concat(['c', 'a'])));
Run Code Online (Sandbox Code Playgroud)
<script src="https://rawgit.com/lodash/lodash/3.0.1/lodash.min.js"></script>
Run Code Online (Sandbox Code Playgroud)