美文网首页程序员
Diff Two Arrays(找出两个数组的差异)for Fr

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

作者: Ytsssss | 来源:发表于2017-09-06 20:51 被阅读0次

    问题:

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

    代码实现:

    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()方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。

    相关文章

      网友评论

        本文标题:Diff Two Arrays(找出两个数组的差异)for Fr

        本文链接:https://www.haomeiwen.com/subject/wugvjxtx.html