javascript - 如何测试一个数组是否是另一个数组的子集?

标签 javascript underscore.js

<分区>

提供这种逻辑的最佳(最干净)方法是什么?

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

最佳答案

假设数组中的每个元素都是唯一的:将 hand 的长度与两个数组的交集长度进行比较。如果它们相同,则 hand 中的所有元素也都是 colors

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

DEMO

关于javascript - 如何测试一个数组是否是另一个数组的子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14130104/

相关文章:

javascript - <li> 标签内的文本换行

javascript - 检查对象是否在 ng-repeat 中的另一个对象数组中

javascript - 在 JavaScript 中创建货币转换器

javascript - 如何将数组值插入对象?

javascript - 为什么 string.replace(/\n/g, '<br>' ) 不能与 underscore.js 一起使用?

javascript - 在 underscore.js 中扩展对象的最佳实践

javascript - 如何根据键值更新 javascript 数组中的行?

javascript - jQuery Slider(div 粘在一边)

php - 排序公共(public)属性数组

javascript - Backbone 的 fetch() : Add only models that are new to the collection