所以我试图比较2个数组,看它们的内容是否相同,见下面的例子
var array1 = [0,2,2,2,1]
var array2 = [0,2,2,2,3]
我想使用某种方法比较这两个数组 所以我会编写一个函数,如果某些数字都在两个数组中,则返回true。
我在一个试图找到特定值的数组上完全使用了该方法
function testArray(){
var bool = array1.some(function(value){
return value ===1;
});
}
console.log(bool)
但是如何将它用于2个阵列?任何帮助表示赞赏
答案 0 :(得分:0)
every()方法测试数组中的所有元素是否都通过了提供的函数实现的测试。
some()方法测试数组中的某个元素是否通过了由提供的函数实现的测试。
执行相同的任务。请看刘海!
var array1 = [0, 2, 2, 2, 1],
array2 = [0, 2, 2, 2, 3];
function compareEvery(a1, a2) {
if (a1.length !== a2.length) { return false; }
return a1.every(function (a, i) {
return a === a2[i];
});
}
function compareSome(a1, a2) {
if (a1.length !== a2.length) { return false; }
return !a1.some(function (a, i) {
return a !== a2[i];
});
}
document.write(compareEvery(array1, array2) + '<br>');
document.write(compareEvery(array1, array1) + '<br>');
document.write(compareSome(array1, array2) + '<br>');
document.write(compareSome(array1, array1) + '<br>');
&#13;
答案 1 :(得分:-1)
如果要测试两个数组是否包含相同的值,可以将some
与indexOf
结合使用:
function containsSameValue(arr1, arr2) {
return arr1.some(function(value) {
return arr2.indexOf(value) > -1;
});
}
var array1 = [0, 2, 2, 2, 1];
var array2 = [0, 2, 2, 2, 3];
containsSameValue(array1, array2); // true
containsSameValue([1, 2, 3], [4, 5, 6]); // false
答案 2 :(得分:-1)
您可以使用此方法
function compare(arr1, arr2) {
if (arr1.length != arr2.length) return false;
for (var i = 0; i < arr2.length; i++) {
if (arr1[i].compare) {
if (!arr1[i].compare(arr2[i])) return false;
}
if (arr1[i] !== arr2[i]) return false;
}
return true;
}
var array1 = [0, 2, 2, 2, 1];
var array2 = [0, 2, 2, 2, 3];
compare(array1, array2);