例如:數(shù)組 arr=[1,2,3,1,2,4,5,6];要去除arr[]數(shù)組中相同元素(即arr[]數(shù)組元素具有單一性)。
這里主要講述兩種實現(xiàn)方式:一種是遍歷方式實現(xiàn),另一種是關(guān)聯(lián)數(shù)組方式實現(xiàn)。 較為好理解也是較為普遍的一種方式遍歷方式;代碼如下:
var arr=[1,2,3,1,2,4,5,6];function repeat1(arr){ //遍歷arr中每個元素,同創(chuàng)建一新的索引數(shù)組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位置的元素,就退出循環(huán) if(arr[i]==result[j]) break; } //如果j走到頭,說明在result中沒有遇到重復(fù)的元素,就將arr[i]放入result結(jié)尾 if(j==result.length) result[result.length]=arr[i]; } return result; }方法二采用關(guān)聯(lián)(hash)數(shù)組:
var arr=[1,2,3,1,2,4,5,6];function repeat2(arr){ //遍歷arr中每個元素,聲明一個關(guān)聯(lián)數(shù)組,一個索引數(shù)組 for(var i=0,hash=[],result=[]; i<arr.length; i++){ //用arr[i]的元素作為hash[]數(shù)組的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; }新聞熱點
疑難解答