陣列去重的幾種方式

2021-09-24 07:53:55 字數 665 閱讀 3999

function uniquearray(arr)

複製**

優點:**簡潔,速度快,時間複雜度為o(n)

缺點:需要乙個額外的set和array的儲存空間,空間複雜度為o(n)

function uniquearray(arr)}}

return arr;

}複製**

優點:不需要使用額外的儲存空間,空間複雜度為o(1)

缺點:需要頻繁的記憶體移動,雙重迴圈,時間複雜度為o(n2)

function uniquearray(arr)

}return retarray;

}複製**

時間複雜度為o(n2),空間複雜度為o(n)

和方法三的區別在於,它不再是使用array.indexof判斷是否已存在,而是使用object[key]進行雜湊查詢,所以它的時間複雜度為o(n),空間複雜為o(n).

總結:object + array最省時間,splice的方式最耗時(它比較省空間),set + array的簡潔方式在資料量大的時候時間將明顯少於需要o(n2)的array,同樣是o(n2)的splice和array,array的時間要小於經常記憶體移動操作的splice。

js陣列去重的幾種方式

雙重for迴圈去重 思路 i 1,2,2,2,3,true,undefined,true true undefined undefined 7,8,9 從第乙個元素開始 j 2,2,2,3,true,undefined,true true undefined undefined 7,8,9 2,2,...

陣列去重並排序幾種方式

1 解析多維陣列 let array 1,2,2,3 2,3,4,5 6,6,7,8,9,11,12,12,13,14 10 陣列flat 方法可以把多維陣列解析出來 引數為解析的層數 let newarr array.flat 4 結果為 1,2,2,3,2,3,4,5,6,6,7,8,9,11,...

List去重的幾種方式

去除重複資料 由於set的無序性,不會保持原來順序 param list public static list distinct list list set去重並保持原先順序的兩種方法 public static void delrepeat list list 去除重複資料 一般不推薦 類似於氣泡...