JS算法——Diff Two Arrays

比较两个数组,返回两个数组中不相同的元素的集合。

根据算法内容描述,我们需要比较找出两个数组中不相同的元素并且把他们拼接成一个新的数组。

  1. 利用Array.filter我们可以对数组进行筛选(filter根据其返回值来决定数组中的每一个元素的保留与否,true保留,false则不保留)
  2. 利用Array.indexOf的返回值作为筛选条件(返回查找元素在数组中的位置(index),若查找不到返回-1)
  3. 利用Array.concat来拼接两个新的数组
function diff(arr1, arr2) {
  var newArr=arr1.filter(function(val){
    //留下arr1中与arr2不相同的元素
    return arr2.indexOf(val)>=0?false:true;
  }).concat(arr2.filter(function(val){
    //留下arr2中与arr1不相同的元素
    return arr1.indexOf(val)>=0?false:true;
  }));//concat拼接两个数组

    //返回新数组
  return newArr;
}

 

转载于:https://my.oschina.net/JSBreaker/blog/794789

你可能感兴趣的:(JS算法——Diff Two Arrays)