在程式中,通常解決乙個問題的方法有很多種。當然這些不同思路的解決方法,在效能和效率上也有很大差異。
以下是數字去重的三種方法,
一、迴圈遍曆法(傳統思路)
最簡單粗暴的演算法,新建乙個空陣列,然後遍歷原陣列,將不在新陣列中的項新增到新陣列,最後返回新陣列
functioncompare(arr)//
如果當前原陣列中的項,在新陣列中存在,則標記為『不新增』,並跳出新陣列遍歷
}
if(isadd)//
若標記為『新增』(即遍歷新陣列後,沒有發現相同項),則新增進新陣列
}
return newarr;//
返回新陣列
}
二、排序比較法(巧妙轉換)
相對第一種方法,需要每次遍歷新舊兩個陣列,效率不高的情況。此方法先對原陣列進行排序,這樣每次只要與新陣列的最後一項比較即可,大大提高效率
functionsortarr(arr)//
若當前項與新陣列最後一項不同,這新增到新陣列
}
return newarr;//
返回新陣列
}
三、物件屬性法(另闢新徑)
相對前兩種方法通過比較的方式,此方法主要利用了物件屬性(key值)不可重複的特性,將陣列中各項賦值給乙個新物件,重複將自動覆蓋。最後從物件上遍歷出屬性即可。
functionattribute(arr);//
新建空物件
var newarr=;//
新建空陣列
for(var i=0; inull;}//
將原陣列項作為物件的key進行賦值
for( var attr in obj)//
遍歷物件,取出key值新增到新陣列
return newarr;//
返回新陣列
}
js陣列去重的三種方法
1.利用陣列操作方法splice實現陣列去重 var arr 1 2,2 3,3 3,4 4,5 6,6 7,7 7,8 8,9 function newarr arr return arr console.log newarr arr 返回結果 1 2,3 4,5 6,7 8,9 2.利用inde...
js陣列去重的三種方法
此方法是比較常用的方法之一,也是es5中比較實用的方法之一。話不多說,上 function newarr arr return arr var arr 1 1,2 5,6 3,5 5,6 8,9 8 console.log newarr arr 此方法也是es5中比較簡單的方法之一,基本思路是新建乙...
js中陣列去重的三種方法
陣列去重的三種方法 1 利用es6中 set型別實現陣列去重。let arr 1,2,1,2,3,1,4,1 2 1 3 console.log new set arr 1,2,3,4,1 2 3 2 新建乙個空陣列,然後迴圈之前的陣列,判斷每一項是否新陣列裡面,不存在的話push到新陣列裡面。le...