比较两个数组并返回差值的最快/最好的方法是什么?很像PHP中的array_diff
。有没有一个简单的函数,或者我必须通过each()
创建一个?或者是一个foreach
循环?
发布于 2013-03-13 20:51:29
我知道这是一个老生常谈的问题,但我想我会分享这个小技巧。
var diff = $(old_array).not(new_array).get();
diff
现在包含了old_array
中不包含在new_array
中的内容
发布于 2014-02-27 22:01:41
使用下划线为:
_.difference(array1,array2)
发布于 2012-06-07 16:23:47
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;
};
https://stackoverflow.com/questions/10927722
复制相似问题