[w-每日一練]——數組去重

數組去重(一個數組)

function fn(arr){
    //新建一個空數組接收
   var newArr =[];
   //遍歷數組,push到新數組
   for(var i = 0 ; i < array.length ; i++){
    if(newArr.indexOf(array[i])==-1){
        newArr.push(array[i]);
    }
   }
   return newArr;
}

var array = [1,2,2,4,9,6,7,5,2,3,5,6,5];
console.log(fn(array));

數組去重(多個數組)

function unite(arr1, arr2, arr3){
  //使用arguments遍歷所有數組,並且放入一個newArr中
  var newArr = Array.from(arguments);
  //使用reduce遍歷新數組,根據reduce的參數,a來表示上一次調用返回的值,b來表示正在處理的元素
  //然後把b都拼接到a當中,最後返回的 arr = [arr1,arr2,arr3],合成了一個大數組,方便我們使用函數。
  var arr = newArr.reduce(function(a,b){
    return a.concat(b);
  });
  //最後使用filter遍歷arr,根據filter的參數,element代表當前元素,index代表當前元素的索引。
  return arr.filter(function(element,index){
    //核心函數:filter篩選出當前函數 ==它當前的索引,比如上面第一例中,當element指向第一個2時,
    return arr.indexOf(element) == index;
  });

}

unite([1, 3, 2], [5, 2, 1, 4], [2, 1]);
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章