陣列去重,簡短而有效的方法
阿新 • • 發佈:2019-01-21
<script type="text/javascript"> var arr = [1,2,3,4,5,6,7,8,1,2,3,4,5,12,13,14,15]; /* js物件裡沒有重複的key,所以可以通過以下方法來解決陣列去重 1.把陣列轉換成物件 2.把值變成物件中的key 3.再把物件還原成陣列 */ //把陣列轉換成物件 function toObject(arr){ var obj = {}; var j; for(var i=0, j=arr.length; i<j; i++){ //把之變成物件中的key obj[arr[i]] = true; } return obj; } //把物件還原成陣列 function toKey(obj){ var a = []; for(var arr in obj){ //hasOwnProperty:用於檢測給定的屬性在當前物件例項中(而不是原型中)是否存在 if (obj.hasOwnProperty(arr)) { //YUI底層程式碼 a.push(arr); } } return a; } //綜合方法 function toArr(newArr){ return toKey(toObject(newArr)); } console.log(toArr(arr)); </script>