本文實例講述了JavaScript基於對象去除數組重復項的方法。分享給大家供大家參考,具體如下:
JavaScript中,去除數組重復項是一個很常用的函數,而且在面試中也很經常被提問到.很多人在面對這個問題的時候,一般都是采用多層for循環來一步一步的比較,然後刪除,那樣不僅代碼量很多,而且性能也很不好.在JavaScript的對象中,有一個特性就是key永遠不重復,如果重復後面的就會覆蓋前面的.
三個步驟:
1# 把數組轉換成js對象
2# 把數組值變成js對象中的key
3# 把對象還原成數組
var toObject = function(arr){ var obj = new Object(); //私有對象 var j = arr.length; for(var i=0; i < j; +i+){ obj[arr[i]] = true; } return obj; } var keys = function(obj){ var arr = []; for(var attr in obj){ if(obj.hasOwnPerpoty(attr)){ arr.push(attr); } } return arr; } var uniq = function(arr){ //去除重復項 return keys(toObject(newarr)); }
在使用的使用,把數組傳遞到uniq函數裡面即可,這個方法使用了JavaScript對象特性,非常的高效簡潔,也是雅虎YUI的底層實現.
更多關於JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數組操作技巧總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript數學運算用法總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript動畫特效與技巧匯總》及《JavaScript錯誤與調試技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。