1. 程式人生 > >算法-利用object的key唯一性刪除數組重復項

算法-利用object的key唯一性刪除數組重復項

算法 重復項

# 利用object的key唯一性刪除數組重復項
# uniq.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
  <script type="text/javascript">
   
   var arr=[12,34,22,34,55,90,66,12,90,9,12,33,22]
   //將數組轉換為object,數組的元素轉換為Object的key
   function toObject(arr){
    var obj={}
    for (var i = arr.length - 1; i >= 0; i--) {
     obj[arr[i]]=true
    }
    return obj
   }
   //obj的key還原為arr的元素
   function toArray(obj) {
    var arr=[]
    for (var attr in obj) {
     if (obj.hasOwnProperty(attr)) {
      arr.push(attr)
     }
    }
    return arr
   }
   //刪除重復項的代碼
   function uniq(arr){
    return toArray(toObject(arr))
   }
   var u=uniq(arr)
   console.log(‘刪除重復前:‘+arr)
   console.log(‘刪除重復後:‘+u)
  </script>
</head>
<body>
 
</body>
</html>
# result:
刪除重復前:12,34,22,34,55,90,66,12,90,9,12,33,22  
刪除重復後:9,12,22,33,34,55,66,90


算法-利用object的key唯一性刪除數組重復項