📅  最后修改于: 2023-12-03 15:11:56.505000             🧑  作者: Mango
在Javascript中,有时候需要判断一个数组中是否包含另一个数组的情况,本文将介绍几种实现方案。
可以使用循环来判断一个数组中是否包含另一个数组,具体实现代码如下:
function containsArray(array1, array2) {
for (var i = 0; i < array1.length; i++) {
var isEqual = true;
for (var j = 0; j < array2.length; j++) {
if (array1[i + j] !== array2[j]) {
isEqual = false;
break;
}
}
if (isEqual) {
return true;
}
}
return false;
}
var array1 = [1, 2, 3, 4, 5];
var array2 = [3, 4];
console.log(containsArray(array1, array2)); // true
ES6中新增了数组方法includes,可以轻松实现判断一个数组中是否包含另一个数组的功能,具体实现代码如下:
var array1 = [1, 2, 3, 4, 5];
var array2 = [3, 4];
console.log(array1.includes(...array2)); // true
使用includes方法时需要注意,参数传递的方式是使用...运算符将数组打散传入。
另一种实现方法是将数组转化为字符串,然后使用字符串中的indexOf方法来检查是否包含另一个字符串,具体实现代码如下:
var array1 = [1, 2, 3, 4, 5];
var array2 = [3, 4];
var str1 = array1.join();
var str2 = array2.join();
console.log(str1.indexOf(str2) !== -1); // true
使用join方法判断有一定的缺陷,比如数组元素中如果有,则会影响判断的准确性。
以上就是Javascript中判断一个数组是否包含另一个数组的方法介绍,根据实际情况进行选择。