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

时间:2015-04-03 13:10:52

标签: 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

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

4 个答案:

答案 0 :(得分:10)

在这种情况下,你可以使用_.difference这样的值数组,就像这样

console.log(_.difference(bar.foo, ['a', 'c']));
[ 'b' ]

答案 1 :(得分:8)

如果您所处的环境中可以使用ES6 spread operator...,那么

.without(bar.foo, ...['c', 'a']);

答案 2 :(得分:4)

您可以使用.apply



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


console.log(_.without.apply(_, [bar.foo].concat(['c', 'a'])));

<script src="https://rawgit.com/lodash/lodash/3.0.1/lodash.min.js"></script>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

可以使用点差运算符

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

var arr = ['c', 'a'];

console.log(_.without([bar.foo], ...arr) ;