本文主要和大家分享JS陣列去重方法總結,一共有七種方法,希望能幫助大家。
最簡單的方法:
#1 #2 ##3 #4 5 #6 7 8# 9 10 #11 12 13 14 #15 16 17 18 |
|
##1 #2345678
9 10 11 12 #13 14 15 16 17 18 |
##
|
方法二:利用splice直接在原始數組進行運算
#雙層循環,外層循環元素,內層循環時比較值
值相同時,則刪除這個值
注意點:刪除元素之後,需要將陣列的長度也減1.
#1 2 3 4 5 #6 7 8 9 10 11 #12 #13 #14 15 16 17 18 #19 |
for (j = i + 1; j <p class="line number8 index7 alt1" style="line-height:15.4px;margin:0px;padding:0px 1em;background-image:none;border:0px;float:none;height:auto;vertical-align:baseline;width:auto;min-height:auto;white-space:pre;"><code class="js spaces" style="margin:3px auto 0px;padding:0px 0px 0px 5px;background:rgb(255,255,255);border-left:3px solid rgb(108,226,108);width:640px;font-size:14px;clear:both;border-top:0px;border-right:0px;border-bottom:0px;float:none;height:auto;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;min-height:auto;"> if (arr[i] == arr[j]){
|
優點:簡單易懂
缺點:佔用記憶體高,速度慢
#方法三:利用物件的屬性不能相同的特點進行去重
#1 2 #3 4 5 6 7 8 9 10 11 12 #13 14 15 16 17 |
|
方法四:陣列遞歸去重
運用遞歸的想法
先排序,然後從最後開始比較,遇到相同,則刪除
1 # 2 3 4 5 6 7 8 9 10 11 #12 #13 #14 15 16 17 18 #19 #20 |
##
|
方法五:利用indexOf以及forEach
##1234#######5#####6#####7##### ##8######9### 10 11 12 13 14 15 |
##var var
|
方法六:利用ES6的set
Set資料結構,它類似數組,其成員的值都是唯一的。
利用Array.from將Set結構轉換成陣列
1 2 3 4 |
##function # }
|
拓展運算子(...)內部使用for...of迴圈
# 1 2 3 |
|
下面要為大家補充介紹合併陣列並去重的方法
#一、concat()方法
思路:concat() 方法將傳入的數組或非數組值與原數組合並,組成一個新的數組並返回。此方法會產生一個新的陣列。
1 #2 3 4 5 |
|
二、Array.prototype.push.apply()
想法:此方法優點是不會產生一個新的陣列。
#1 2 ##3#45678910 |
##var #Array.prototype.push.apply(a, b); //相當於:a.push.apply(a, b) ;
##
|
#相關推薦:
以上是JS數組去重方法總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!