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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 由于最近都在freecodecamp上刷代码,运用了很多JavaScript数组的方法,因此做了一份关于JavaS...
    2bc5f46e925b阅读 2,002评论 0 16
  • concat():对数组进行拼接,具有打散插入的数组的功能,返回新数组,无权修改原数组。如果给这个concat传递...
    十七度的夏天阅读 402评论 0 0
  • 相关知识点 数据类型、运算、对象、function、继承、闭包、作用域、原型链、事件、RegExp、JSON、Aj...
    sandisen阅读 11,391评论 7 175
  • 一、创建Array 创建数组主要有两种方法,第一种是使用数组构造函数,第二种是使用数组字面量表示法。 使用数组构造...
    JackfengGG阅读 959评论 0 51
  • js中数组是比较常用的对象,同时js中的数组也十分的灵活。一. 创建数组的方式 字面量数组 var arr=[1,...
    饥人谷_廖珍阅读 594评论 0 2