Как найти все элементы в A, но не B в lodash? - PullRequest
1 голос
/ 29 сентября 2019

В Javascript я пытаюсь сделать следующее:

A = [1,2,3,4,5];
B = [3,4,6];
C = ??? // Do something here
console.log(c); // Should be [1,2,5]

Я бы подумал, что в lodash это достаточно распространено, но я не могу найти функцию, которая будет это делать,Лучшее, что я могу придумать, это:

C=_.intersection(A,_.xor(A,B));

Есть ли одна функция, которую мне не хватает для этого?

Ответы [ 2 ]

1 голос
/ 29 сентября 2019

Для Lodash v4.17.15:

Вы можете просто сделать, var C = _.pullAll(A, B);

var A = [1,2,3,4,5];
var B = [3,4,6];
var C = _.pullAll(A, B);
console.log(C); // Should be [1,2,5]
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.11/lodash.min.js"></script>

Для v3.10.1:

Вы можете просто сделать, var C = _.difference(A, B);

var A = [1,2,3,4,5];
var B = [3,4,6];
var C = _.difference(A, B);
console.log(C); // Should be [1,2,5]
<script src="https://cdn.jsdelivr.net/npm/lodash@3.10.1/index.min.js">
</script>
1 голос
/ 29 сентября 2019

Как насчет чего-то вроде A.filter(item => !B.includes(item)); даже без lodash?

...