js陣列去重的方法

2021-08-13 10:46:12 字數 1677 閱讀 5219

array.from方法可以將set結構轉為陣列

let items = new

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

let array = array.from(items);

這就是提供了一種資料去重的方法

function uniq(array) 

uniq([1, 2, 3, 3]) //[1, 2, 3]

運用擴充套件運算子(…)提供了一種更便捷的去重方法

let arr = [2, 3, 3, 5, 6, 2];

let uniq = [...new set(arr)];//[2, 3, 5, 6]

這是一種原生js的去重方法,借助乙個空陣列來實現去重,便於理解底層原理(xyz函式帶有引數)

function

xyz(arr) )

return a;

}console.log(xyz([1,2,3,2,3]));

//[1, 2, 3]

同上(xyz函式不帶引數)

拓展:需要注意的一點就是此函式可以傳多個陣列,但是要看arguments[index]

決定執行哪個陣列,預設是執行第乙個。

function

xyz() )

return a;

}console.log(xyz([1,2,3,2,3],[2,2,1]));

//[1, 2, 3]

這是一種基於陣列原型鏈的去重方法

array.prototype.uniq = function() )

return a;

}console.log([1,2,1,3].uniq());

//[1, 2, 3]

主要思想:建立乙個新陣列,首先遍歷原陣列,若原陣列某個元素不在新陣列中,則新增到新陣列;若存在,則忽略。

function

uniqearray(arr)

}if(!repeat)

}return res;

}

基本思想:先對陣列排序。再定義乙個新陣列,遍歷排序後的陣列,若排序後的陣列元素不等於新陣列最後乙個元素,則新增。

function

uniqearray(arr)

}return res;

}

基本思想:利用物件的屬性。遍歷陣列,若該陣列元素不是物件的屬性,則新增。

function

uniqearray(arr) ;

for(let i = 0; i< arr.length; i++)

}return res;

}

基本思想:通過filter篩選出去重後的陣列。若indexof方法在該元素之後再查不到該元素的位置,表示該元素不存在,符合要求。

function

uniqearray

(arr)

)}

js陣列去重方法

var arr 1,2,3,4,5,1,2,3 function norepeat arr console.log norepeat arr 結果 1,2,3,4,5 arr.indexof val 這個方法會獲取val所在arr的下標 返回為 true 說明 獲取下標後和index下標對比如果 i...

JS陣列去重方法

var arr 1,2,1,2 定義乙個空陣列 var arr1 遍歷原始陣列,若新陣列中沒有這個元素,那麼就將該元素新增到新陣列中 for var i 0 i方法一 二維陣列中,是否可以用上面的方法呢?答案是否定的。js的indeof啊返回字串字元或陣列中某個元素的位置,它的內部是遍歷這個陣列看是...

JS陣列去重方法

將陣列var arr 1,1,true true true,true,15,15,false,false,undefined,undefined,null,null,nan,nan,nan 0,0,a a 中重複的值過濾掉 使用es6中的set是最簡單的去重方法 var arr 1 1,true t...