首页 > 代码库 > Diff Two Arrays
Diff Two Arrays
比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之,返回两个数组的差异。
这是一些对你有帮助的资源:
- Comparison Operators
- Array.slice()
- Array.filter()
- Array.indexOf()
- Array.concat()
这些资源又被我浪费掉了大部分。。不过好歹算是写出来了
function diff(arr1, arr2) { var newArr = []; var same=[]; for(var i=0;i<arr1.length;i++){ if(arr2.indexOf(arr1[i])!==-1){ same.push(arr1[i]); //找出相同的项放在一个数组中 } } newArr=arr1.filter(function(v){ return same.indexOf(v)==-1; //找出第一个数组中不同的项 }).concat(arr2.filter(function(v){ return same.indexOf(v)==-1; //找出第二个数组中不同的项 })); return newArr; //返回 }
后来想想,其实不用找相同的项,直接找不同的项就好了,瞬间把上面的代码砍掉一大半,好厉害的感觉有木有
function diff(arr1, arr2) { return arr1.filter(function(v){ return arr2.indexOf(v)==-1; //第一个数组在第二个数组中不同的项 }).concat(arr2.filter(function(v){ return arr1.indexOf(v)==-1; })); //第二个数组在第一个数组中不同的项
}
Diff Two Arrays
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。