兩種常用的javascript數(shù)組去重方法思路及代碼
更新時間:2013年03月26日 11:31:52 作者:
第一種是常規(guī)的方法:建一個新的數(shù)組存放結(jié)果,for循環(huán)中每次從原數(shù)組中取出一個元素,用indexOf查找新數(shù)組中是否有該元素,至于第二種詳細(xì)的看下本文哦
第一種是比較常規(guī)的方法
思路:
1.構(gòu)建一個新的數(shù)組存放結(jié)果
2.for循環(huán)中每次從原數(shù)組中取出一個元素,用indexOf查找新數(shù)組中是否有該元素
3.若沒有,則存到結(jié)果數(shù)組中
復(fù)制代碼 代碼如下:
Array.prototype.unique1 = function(){
var res = [];
for(var i = 0; i < this.length; i++){
if(res.indexOf(this[i]) == -1){
res.push(this[i]);
}
}
return res;
}
var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique1())
此基礎(chǔ)上可以略微優(yōu)化,但原理不變,效果也不明顯
復(fù)制代碼 代碼如下:
Array.prototype.unique1 = function(){
var res = [this[0]];//直接將原數(shù)組中的第一個元素存入構(gòu)建的新數(shù)組中
for(var i = 1; i < this.length; i++){//循環(huán)從第二個元素開始
if(res.indexOf(this[i]) == -1){
res.push(this[i]);
}
}
return res;
}
var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique1())
第二種方法比上面的方法效率要高
思路:
1.先將原數(shù)組進(jìn)行排序
2.檢查原數(shù)組中的第i個元素 與 結(jié)果數(shù)組中的最后一個元素是否相同,因為已經(jīng)排序,所以重復(fù)元素會在相鄰位置
3.如果不相同,則將該元素存入結(jié)果數(shù)組中
復(fù)制代碼 代碼如下:
Array.prototype.unique2 = function(){
this.sort(); //先排序
var res = [this[0]];
for(var i = 1; i < this.length; i++){
if(this[i] !== res[res.length - 1]){
res.push(this[i]);
}
}
return res;
}
var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique2())
相關(guān)文章
JavaScript的級聯(lián)函數(shù)用法簡單示例【鏈?zhǔn)秸{(diào)用】
這篇文章主要介紹了JavaScript的級聯(lián)函數(shù)用法,結(jié)合簡單實例形式分析了javascript鏈?zhǔn)秸{(diào)用具體定義及使用方法,需要的朋友可以參考下2019-03-03
了不起的11個JavaScript代碼重構(gòu)最佳實踐小結(jié)
這篇文章主要介紹了了不起的11個JavaScript代碼重構(gòu)最佳實踐小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
uniapp中獲取dom元素的方法及更改dom元素顏色踩坑記錄
最近學(xué)到了一個比較好用的框架uni-app,可以做六端適配,學(xué)習(xí)一下,下面這篇文章主要給大家介紹了關(guān)于uniapp中獲取dom元素的方法及更改dom元素顏色踩坑記錄的相關(guān)資料,需要的朋友可以參考下2023-03-03
JavaScript提取PDF和Word文檔內(nèi)圖片
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實現(xiàn)提取PDF和Word文檔內(nèi)的圖片,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下2025-03-03

