数组去重

JavaScript数组去重

let arr = "1, 2, 3, 1, 2, 5, 8, '1', '2', 3"
function unique(arr) {
      // 方法一
      let res = []
      for (let i = 0, len = arr.length; i < len; i++) {
        let item = arr[i]
        if (res.indexOf(item) === -1) res.push(item)
      }
      return res
      // 方法二
      return arr.filter(function (item, index, array) {
        return array.indexOf(item) === index
      })
      // 方法三
      let res = []
      for (let i = 0, len = arr.length; i < len; i++) {
        for (let j = i + 1; j < len; j++) {
          // 这一步十分巧妙
          // 如果发现相同元素
          // 则 i 自增进入下一个循环比较
          if (arr[i] === arr[j]) j = ++i
        }
        res.push(arr[i])
      }
      return res
      // 方法四
      return Array.from(new Set(arr))
      // 方法五
      let hashmap = {};
      let res = [];
      for(let i = 0; i < arr.length; i++) {
        // If key returns null (res), it is evaluated as false.
        if(!hashmap.hasOwnProperty([arr[i]])) {
          hashmap[arr[i]] = '';
          res.push(arr[i]);
        }
      }
      return res
    }

 

posted @ 2018-12-06 16:13  fanmengfei  阅读(153)  评论(0编辑  收藏  举报