【Javascript】求两个数组的差异,并将差异值组成新数组返
2017-11-30 本文已影响0人
雨水之后
比如diff([1, 2, 3, 5], [1, 2, 3, 4, 5])就应该会返回一个[4]。
普通算法:
function diff(arr1, arr2) {
//储存新数组
var newArr = [];
//遍历这两个数组
for(var i=0;i<arr1.length;i++){
if(arr2.indexOf(arr1[i])===-1){
newArr.push(arr1[i]);
}
}
for(var j=0;j<arr2.length;j++){
if(arr1.indexOf(arr2[j])===-1){
newArr.push(arr2[j]);
}
}
return newArr;
}
文艺算法:
function diff(arr1, arr2) {
return arr1.concat(arr2).filter(function(item){
if(!arr1.includes(item)||!arr2.includes(item)){
return item;
}
});
}
2B算法:
function diff(arr1, arr2) {
return arr1.concat(arr2).filter(item => !arr1.includes(item)||!arr2.includes(item));
}
THE END.