js數組去重六種方法

第一種:遍歷數組法

這種方法最簡單最直觀,也最容易理解,代碼如下:

 var arr = [2, 8, 5, 0, 5, 2, 6, 7, 2]
 var newArr = []
 for (var i = 0; i < arr.length; i++) {
   if (newArr.indexOf(arr[i]) === -1) {
      newArr.push(arr[i])
    }
 }
 console.log(newArr) // 結果:[2, 8, 5, 0, 6, 7]

第二種:數組下標判斷法

 var arr = [2, 8, 5, 0, 5, 2, 6, 7, 2]
 var newArr = []
 for (var i = 0; i < arr.length; i++) {
    if (arr.indexOf(arr[i]) === i) {
      newArr.push(arr[i])
    }
 }
 console.log(newArr) // 結果:[2, 8, 5, 0, 6, 7]

第三種:排序後相鄰去除法

 var arr = [2, 8, 5, 0, 5, 2, 6, 7, 2]
 arr.sort()
 var newArr = [arr[0]]
 for (var i = 1; i < arr.length; i++) {
     if (arr[i] !== newArr[newArr.length - 1]) {
       newArr.push(arr[i])
     }
  }
  console.log(newArr) // 結果:[0, 2, 5, 6, 7, 8]

第四種:優化的遍歷數組法

   var arr = [2, 8, 5, 0, 5, 2, 6, 7, 2, 8]
   var newArr = []
   for (var i = 0; i < arr.length; i++) {
      for (var j = i + 1; j < arr.length; j++) {
        if (arr[i] === arr[j]) {
          i++
          j = i
        }
      }
     newArr.push(arr[i])
   }
   console.log(newArr) // 結果:[0, 5, 6, 7, 2, 8]

第五種:數組遍歷法

 

  var arr = ['a', 'a', 'b', 'c', 'b', 'd', 'e', 'a']
  var newArr = []
  for (var i = 0; i < arr.length; i++) {
      var bl = true
      for (var j = 0; j < newArr.length; j++) {
       if (arr[i] === newArr[j]) {
         bl = false
          break
        }
     }
     if (bl) {
       newArr.push(arr[i])
     }
   }
   console.log(newArr) // 結果:["a", "b", "c", "d", "e"]

第六種:set集合

[...new Set(arr)]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章