Как проверить, является ли один массив подмножеством другого?
Какой лучший (самый чистый) способ обеспечить такую логику?
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?
Ответы
Ответ 1
Предполагая, что каждый элемент в массиве уникален: сравните длину hand
с длиной пересечения обоих массивов. Если они одинаковы, все элементы в hand
также находятся в colors
.
var result = (hand.length === _.intersection(hand, colors).length);
DEMO
Ответ 2
Возможно, difference - это то, что вы ищете:
_(hand).difference(colors).length === 0