首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用.some()比较数组

使用.some()比较数组
EN

Stack Overflow用户
提问于 2016-01-28 16:17:34
回答 3查看 75关注 0票数 1

所以我试着比较两个数组,看看它们的内容是否相同,见下面的例子

代码语言:javascript
复制
var array1 = [0,2,2,2,1]
var array2 = [0,2,2,2,3]

我想使用some方法比较这两个数组,所以我将编写一个函数,如果两个数组中都有一些数字,该函数将返回true。

我在一个数组上完美地使用了这个方法,试图找到一个特定值。

代码语言:javascript
复制
function testArray(){
 var bool = array1.some(function(value){
   return value ===1;
 });
}
console.log(bool)

但是如何将它用于2个数组呢?任何帮助我们都将不胜感激

EN

回答 3

Stack Overflow用户

发布于 2016-01-28 16:28:18

使用Array.prototype.every()的解决方案

()方法测试数组中的所有元素是否都通过了所提供的函数实现的测试。

Array.prototype.some()

()方法测试数组中的某些元素是否通过了所提供函数实现的测试。

来完成相同的任务。请注意刘海!

代码语言:javascript
复制
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>');

票数 0
EN

Stack Overflow用户

发布于 2016-01-28 16:22:53

如果要测试两个数组是否包含相同的值,可以结合使用someindexOf

代码语言:javascript
复制
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
票数 -1
EN

Stack Overflow用户

发布于 2016-01-28 16:27:30

您可以使用此方法

代码语言:javascript
复制
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);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35056086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档