1. 程式人生 > >關於去除JS陣列中的重複元素問題

關於去除JS陣列中的重複元素問題

例如:陣列 arr=[1,2,3,1,2,4,5,6];要去除arr[]陣列中相同元素(即arr[]陣列元素具有單一性)。

這裡主要講述兩種實現方式:一種是遍歷方式實現,另一種是關聯陣列方式實現。
較為好理解也是較為普遍的一種方式遍歷方式;程式碼如下:

var arr=[1,2,3,1,2,4,5,6];
function repeat1(arr){
                //遍歷arr中每個元素,同建立一新的索引陣列result
                for(var i=0,result=[];i<arr.length;i++){
                 //遍歷result中每個元素和arr中i位置元素比較
for(var j=0;j<result.length;j++){ //如果arr中i位置的元素等於result中j位置的元素,就退出迴圈 if(arr[i]==result[j]) break; } //如果j走到頭,說明在result中沒有遇到重複的元素,就將arr[i]放入result結尾 if(j==result.length) result[result.length]=arr[i]; } return
result; }

這裡寫圖片描述

方法二採用關聯(hash)陣列:

var arr=[1,2,3,1,2,4,5,6];
function repeat2(arr){
                //遍歷arr中每個元素,宣告一個關聯陣列,一個索引陣列
                for(var i=0,hash=[],result=[];
                        i<arr.length;
                        i++){
                //用arr[i]的元素作為hash[]陣列的key,去result中查詢是否包含——由hash演算法完成,無需遍歷
if(hash[arr[i]]===undefined){ hash[arr[i]]=true;//將arr[i]加入hash //將arr[i]加入result result[result.length]=arr[i]; } } return result; }

這裡寫圖片描述