2015-04-03 12 views
8

Spodziewałem się, że funkcja bez funkcji będzie przyjmowała tablicę wartości, ale zamiast tego przyjmuje wiele argumentów. Jak przekazać tablicę i sprawić, by działała.jak używać lodash _ bez operatora z tablicą zamiast wielu argumentów

Przykład:

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


_.without(bar.foo, 'c', 'a'); // works; 
_.without(bar.foo, ['c', 'a']); // doesn't work 

Moja lista wykluczenie musi być przekazywane w postaci tablicy lub zmiennej, więc dobrze byłoby wiedzieć, jak używać tablicę z bez funkcji.

Odpowiedz

4

Można użyć .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>

7

Jeśli jesteś w środowisku, w którym można skorzystać z ES6 spread operator, ..., następnie

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

W tym przypadku, może używać tablic wartości takich jak jest, z _.difference, takich jak ten

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

to chyba lepszego sposobu, aby robić to, co muszę, ale ja accepeted odpowiedź Aleksandra ponieważ był specyficzny dla dokładną pytanie. Jednak będę używał twojego rozwiązania w moim rzeczywistym projekcie. Dzięki! – MonkeyBonkey

1

Przydałoby spread operatora

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

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

console.log(_.without([bar.foo], ...arr) ; 
Powiązane problemy