首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >比较返回差异的2个数组

比较返回差异的2个数组
EN

Stack Overflow用户
提问于 2012-06-07 15:46:05
回答 9查看 119.1K关注 0票数 66

比较两个数组并返回差值的最快/最好的方法是什么?很像PHP中的array_diff。有没有一个简单的函数,或者我必须通过each()创建一个?或者是一个foreach循环?

EN

回答 9

Stack Overflow用户

发布于 2013-03-13 20:51:29

我知道这是一个老生常谈的问题,但我想我会分享这个小技巧。

代码语言:javascript
复制
var diff = $(old_array).not(new_array).get();

diff现在包含了old_array中不包含在new_array中的内容

票数 145
EN

Stack Overflow用户

发布于 2014-02-27 22:01:41

使用下划线为:

代码语言:javascript
复制
_.difference(array1,array2)
票数 9
EN

Stack Overflow用户

发布于 2012-06-07 16:23:47

代码语言:javascript
复制
var arrayDiff = function (firstArr, secondArr) {
    var i, o = [], fLen = firstArr.length, sLen = secondArr.length, len;


    if (fLen > sLen) {
        len = sLen;
    } else if (fLen < sLen) {
        len = fLen;
    } else {
        len = sLen;
    }
    for (i=0; i < len; i++) {
        if (firstArr[i] !== secondArr[i]) {
            o.push({idx: i, elem1: firstArr[i], elem2: secondArr[i]});  //idx: array index
        }
    }

    if (fLen > sLen) {  // first > second
        for (i=sLen; i< fLen; i++) {
            o.push({idx: i, 0: firstArr[i], 1: undefined});
        }
    } else if (fLen < sLen) {
        for (i=fLen; i< sLen; i++) {
            o.push({idx: i, 0: undefined, 1: secondArr[i]});
        }
    }    

    return o;
};
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10927722

复制
相关文章

相似问题

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