この種のロジックを提供する最良の(最もクリーンな)方法は何ですか?
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
おそらく nderscore.js ?
配列の各要素が一意であると仮定します。hand
の長さを両方の配列の共通部分の長さと比較します。それらが同じである場合、hand
のすべての要素もcolors
にあります。
var result = (hand.length === _.intersection(hand, colors).length);
多分 difference はあなたが探しているものです:
_(hand).difference(colors).length === 0