陣列去重你知道幾種?

2022-01-16 14:13:15 字數 1050 閱讀 4912

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

let items = new set([1, 2, 3, 4, 5]);

let array = array.from(items);

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

34function uniq(array)

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

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

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

let uniq = [...new set(arr)];

//[2, 3, 5, 6]

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

3456

789function xyz(arr) )

return a;

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

//[1, 2, 3]

同上(xyz函式不帶引數)

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

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

3456

78910

1112

13function xyz() )

// array.prototype 可以換成

array.prototype.foreach.call(arguments[1], (item,index) => )

return a;

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

//[1, 2, 3]

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

3456

78910

array.prototype.uniq = function() )

return a;

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

//[1, 2, 3]

這麼多方法你知道哪幾種呢?

陣列去重的幾種方式

function uniquearray arr 複製 優點 簡潔,速度快,時間複雜度為o n 缺點 需要乙個額外的set和array的儲存空間,空間複雜度為o n function uniquearray arr return arr 複製 優點 不需要使用額外的儲存空間,空間複雜度為o 1 缺點...

幾種陣列去重方法

使用es6中的set是最簡單的去重方法。var arr 1 1,true true true true,15 15,false false undefined,undefined,null null nan nan nan 0 0,a a function arr unique1 arr arr u...

陣列去重的幾種方法

實現思路 新建一新陣列,遍歷傳入陣列,值不在新陣列就加入該新陣列中 注意點 判斷值是否在陣列的方法 indexof 是ecmascript5 方法,ie8以下不支援,需多寫一些相容低版本瀏覽器 最簡單陣列去重法 function unique1 array return n 實現思路 新建一js物件...