Подтвердить что ты не робот

Как проверить, является ли один массив подмножеством другого?

Какой лучший (самый чистый) способ обеспечить такую ​​логику?

var colors = ["red","white","blue"];

logic(colors,["red","green"]); //false
logic(colors,["red"]); //true
logic(colors,["red","purple"]); //false
logic(colors,["red","white"]); //true
logic(colors,["red","white","blue"]); //true
logic(colors,["red","white","blue","green"]); //false
logic(colors,["orange"]); //false

Возможно использование underscore.js?

4b9b3361

Ответ 1

Предполагая, что каждый элемент в массиве уникален: сравните длину hand с длиной пересечения обоих массивов. Если они одинаковы, все элементы в hand также находятся в colors.

var result = (hand.length === _.intersection(hand, colors).length);

DEMO

Ответ 2

Возможно, difference - это то, что вы ищете:

_(hand).difference(colors).length === 0