js陣列去重的三種常用方法總結
第一種是比較常規的方法
思路:
1.構建乙個新的陣列存放結果
2.for迴圈中每次從原陣列中取出乙個元素,用這個元素迴圈與結果陣列對比
3.若結果陣列中沒有該元素,則存到結果陣列中
複製****如下:
array.prototype.unique1 = function()
}if(!repeat)
}return res;
}var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique1());
第二種方法比上面的方法效率要高
思路:
1.先將原陣列進行排序
2.檢查原陣列中的第i個元素 與 結果陣列中的最後乙個元素是否相同,因為已經排序,所以重複元素會在相鄰位置
3.如果不相同,則將該元素存入結果陣列中
複製****如下:
array.prototype.unique2 = function()
}return res;
}var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique2());
第二種方法也會有一定的侷限性,因為在去重前進行了排序,所以最後返回的去重結果也是排序後的。如果要求不改變陣列的順序去重,那這種方法便不可取了。
第三種方法(推薦使用)
思路:
1.建立乙個新的陣列存放結果
2.建立乙個空物件
3.for迴圈時,每次取出乙個元素與物件進行對比,如果這個元素不重複,則把它存放到結果陣列中,同時把這個元素的內容作為物件的乙個屬性,並賦值為1,存入到第2步建立的物件中。
說明:至於如何對比,就是每次從原陣列中取出乙個元素,然後到物件中去訪問這個屬性,如果能訪問到值,則說明重複。
複製****如下:
array.prototype.unique3 = function();
for(var i = 0; i < this.length; i++)
}return res;
}var arr = [112,112,34,'你好',112,112,34,'你好','str','str1'];
alert(arr.unique3());
第一種是比較常規的方法
思路:
1.構建乙個新的陣列存放結果
2.for迴圈中每次從原陣列中取出乙個元素,用這個元素迴圈與結果陣列對比
3.若結果陣列中沒有該元素,則存到結果陣列中
複製****如下:
array.prototype.unique1 = function()
}if(!repeat)
}return res;
}var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique1());
第二種方法比上面的方法效率要高
思路:
1.先將原陣列進行排序
2.檢查原陣列中的第i個元素 與 結果陣列中的最後乙個元素是否相同,因為已經排序,所以重複元素會在相鄰位置
3.如果不相同,則將該元素存入結果陣列中
複製****如下:
array.prototype.unique2 = function()
}return res;
}var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique2());
第二種方法也會有一定的侷限性,因為在去重前進行了排序,所以最後返回的去重結果也是排序後的。如果要求不改變陣列的順序去重,那這種方法便不可取了。
第三種方法(推薦使用)
思路:
1.建立乙個新的陣列存放結果
2.建立乙個空物件
3.for迴圈時,每次取出乙個元素與物件進行對比,如果這個元素不重複,則把它存放到結果陣列中,同時把這個元素的內容作為物件的乙個屬性,並賦值為1,存入到第2步建立的物件中。
說明:至於如何對比,就是每次從原陣列中取出乙個元素,然後到物件中去訪問這個屬性,如果能訪問到值,則說明重複。
複製****如下:
array.prototype.unique3 = function();
for(var i = 0; i < this.length; i++)
}return res;
}var arr = [112,112,34,'你好',112,112,34,'你好','str','str1'];
alert(arr.unique3());
js陣列去重五種方法
今天來聊一聊js陣列去重的一些方法,包括一些網上看到的和自己總結的,總共5種方法 es5 這種方法最簡單最直觀,也最容易理解,如下 var arr 2,8,5,0,5,2,6,7,2 var newarr for var i 0 i arr.length i console.log newarr 結...
js陣列去重五種方法
今天來聊一聊js陣列去重的一些方法,包括一些網上看到的和自己總結的,總共5種方法 es5 這種方法最簡單最直觀,也最容易理解,如下 1 var arr 2,8,5,0,5,2,6,7,2 2 var newarr 3 for var i 0 i arr.length i 7 8 console.lo...
JS 陣列去重的13種方法
首先全域性定義乙個陣列,讓我們開始由複雜到簡單的方法探索一下吧!var arr1 11,11,1,1,2,2,huo huo 思想 建立乙個新陣列,並放入原陣列的第乙個元素。將原陣列元素依次與新陣列元素比較,元素不同就放入新陣列。最後返回新陣列,達到去重效果。function darray2 arr...