所以我试着比较两个数组,看看它们的内容是否相同,见下面的例子
var array1 = [0,2,2,2,1]
var array2 = [0,2,2,2,3]我想使用some方法比较这两个数组,所以我将编写一个函数,如果两个数组中都有一些数字,该函数将返回true。
我在一个数组上完美地使用了这个方法,试图找到一个特定值。
function testArray(){
var bool = array1.some(function(value){
return value ===1;
});
}
console.log(bool)但是如何将它用于2个数组呢?任何帮助我们都将不胜感激
发布于 2016-01-28 16:28:18
使用Array.prototype.every()的解决方案
()方法测试数组中的所有元素是否都通过了所提供的函数实现的测试。
()方法测试数组中的某些元素是否通过了所提供函数实现的测试。
来完成相同的任务。请注意刘海!
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>');
发布于 2016-01-28 16:22:53
如果要测试两个数组是否包含相同的值,可以结合使用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发布于 2016-01-28 16:27:30
您可以使用此方法
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);https://stackoverflow.com/questions/35056086
复制相似问题