Osheep

时光不回头,当下最重要。

Diff Two Arrays(找出两个数组的差异)for FreeC

问题:

比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之,返回两个数组的差异。

代码实现:

function diff(arr1, arr2) {

      var newArr = [];

      var arr3=arr1.concat(arr2);//将arr1和arr2合并为arr3

      function isContain(value){

      //找出arr3中不存在于arr1和arr2中的元素

      return arr1.indexOf(value)==-1||arr2.indexOf(value)==-1;

   }

      newArr = arr3.filter(isContain);

      return newArr;

}

实现思路:

首先将两个数组合arr1和arr2合并得到新的数组arr3。如果元素在arr3中存在,但是不在arr1或arr2中出现,那么这个元素就是两个数组中不同的元素。最后使用filter()方法将这些不同的元素保存在newArr中。

ps:

indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。

filter()方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。

点赞