方法1、建立乙個新的臨時陣列來儲存陣列中已有的元素
方法2、使用雜湊表儲存已有元素
方法3、使用indexof判斷陣列元素第一次出現的位置是否為當前位置
方法4、先排序再去重
第一種方法和第三種方法都使用了indexof(),這個函式的執行機制也會遍歷陣列
第二種使用了雜湊表,是最快的
第三種也有乙個排序的複雜度的計算
詳細**如下:
147四種方法執行時間如下:1013
3334
<
script
>
35vara =
;36for(
vari =0
; i
<
1000000
; i++
) 39
array.prototype.unique1
=function
() 46}47
return
n;48}49
array.prototype.unique2
=function
() 58}59
return
n;60}61
array.prototype.unique3
=function
() 69}70
return
n;71}72
array.prototype.unique4
=function
() );
76varn =
[this[0
]];77
for(
vari =1
; i
<
this
.length; i
++) 81}
82return
n;83}84
varbegin1
=new
date();
85a.unique1();
86var
end1
=new
date();
87console.log(''
+(end1
-begin1));
88var
begin2
=new
date();
89a.unique2();
90var
end2
=new
date();
91console.log(''
+(end2
-begin2));
92var
begin3
=new
date();
93a.unique3();
94var
end3
=new
date();
95console.log(''
+(end3
-begin3));
96var
begin4
=new
date();
97a.unique4();
98var
end4
=new
date();
99console.log(''
+(end4
-begin4));
100script
>
就分享到這些,下次繼續···
js陣列去重 面試題
首先再講陣列去重之前,先引進乙個小的知識點indexof indexof 方法可返回某個指定的字串值在字串中首次出現的位置,eg如下 var arr 1 2,3 4,5 var index arr.indexof 1 1,3,5 console.log index index 輸出的是0 2 4 v...
JS 陣列去重實現,一道面試題
今日去某公司面試web前端,本來對這個公司感覺一般,但是技術面試兩面一共從下午2 30到5 30,各種問題問,主要以js為主,頓時對這個公司有了好的印象,個人感覺面試的水平高最起碼表明乙個公司的態度。問的還算是很給力,都是一般不幾個常用到的,但是想一想確實還挺實用,有了這次思路,下次自己玩前端的時候...
JS實現陣列去重
方法一,利用物件屬性不能相同的方法進行去重 array.prototype.distinct function result len arr.length for i 0 i arr.length i return result var a 1,2,3,4,5,6,5,3,2,4,56,4,1,2,...