题目-文字描述部分:
比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之,返回两个数组的差异。
我的答案:
用了array.filter()和array.concat()两个方法
filter()方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
即 var arr = array.filter(functionname);
以上就是所提供的函数实现的测试,filter方法会遍历arr1中的所有元素来测试所提供的函数compare1,compare1函数中的for循环用来遍历arr2数组
如果element和arr2中的元素相等,就跳出循环并且不返回;如果不相等,i会自增到arr2.length,说明element不存在arr2中,即差异的元素,则返回到新数组arr3中。
同理,把arr2中异于arr1的元素找出来,放到新数组arr4中。
最后把两个找出差异的新数组合并成newArr,即得到了题目中要的结果。
这个方法我总觉得麻烦了点,不知道有没有更简洁的方法。
___________
前端小白,正在努力学习中,如有错处,请多指教,不胜感激!
领取专属 10元无门槛券
私享最新 技术干货