我在此站点上找到了一些解决方案,例如Array.prototype.includes()和Array.prototype.indexOf()和jQuery.inArray()。
这些解决方案中的每一个都非常适合检查数组'x'
中是否有单个值['x','y','z']
。
我的问题是:如何测试以确定数组中是否存在多个值。换句话说,数组X是否在数组Y中?
例如:
['a','e','f']
中的['a','b','c','d','e','f','g']
吗?结果:是。
['a','e','z']
中的['a','b','c','d','e','f','g']
吗?结果:错误。
编辑: 理想情况下,该解决方案可以追溯到IE10。
答案 0 :(得分:2)
这很简洁,可以满足您的要求
const array1 = ['a','b','c','d','e','f','g'];
const array2 = ['a','e','f'];
console.log(array2.every(currentValue => array1.includes(currentValue)));
答案 1 :(得分:1)
前三行之后的所有内容仅用于测试并演示如何使用此功能。一种情况是正确的,另一种情况是错误的。
Array.prototype.containsAll = function(values) {
return values.every((val) => this.indexOf(val) !== -1);
}
var array = ['a','b','c','d','e','f','g'];
var testA = ['a', 'e', 'f'];
var testB = ['a', 'e', 'z'];
var testC = ['x', 'a'];
var res = array.containsAll(testA);
console.log(res);
var res = array.containsAll(testB);
console.log(res);
var res = array.containsAll(testC);
console.log(res);
为处理您的问题的数组原型添加了一个函数。