36

この種のロジックを提供するための最良の (最もクリーンな) 方法は何ですか?

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を使用していますか?

4

2 に答える 2

44

配列内の各要素が一意であると仮定しhandます。の長さと両方の配列の共通部分の長さを比較します。それらが同じである場合、のすべての要素handもにありcolorsます。

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

デモ

于 2013-01-02T22:21:18.333 に答える
20

多分違いはあなたが探しているものです:

_(hand).difference(colors).length === 0
于 2013-01-02T22:20:03.890 に答える