zoukankan      html  css  js  c++  java
  • js 数组去重

    1、
    function unique(a) {
      var res = [];
     
      for (var i = 0, len = a.length; i < len; i++) {
        var item = a[i];
     
        for (var j = 0, jLen = res.length; j < jLen; j++) {
          if (res[j] === item)
            break;
        }
     
        if (j === jLen)
          res.push(item);
      }
     
      return res;
    }
     
    var a = [1, 1, '1', '2', 1];
    var ans = unique(a);
    console.log(ans); // => [1, "1", "2"]
    2、
    function unique(a) {
      var res = [];
     
      for (var i = 0, len = a.length; i < len; i++) {
        var item = a[i];
     
        (res.indexOf(item) === -1) && res.push(item);
      }
     
      return res;
    }
     
    var a = [1, 1, '1', '2', 1];
    var ans = unique(a);
    console.log(ans); // => [1, "1", "2"]
    3、
    function unique(a) {
     
      var res = a.filter(function(item, index, array) {
        return array.indexOf(item) === index;
      });
      
      return res;
    }
     
     
    var a = [1, 1, '1', '2', 1];
    var ans = unique(a);
    console.log(ans); // => [1, "1", "2"]
    4、
    function unique(a) {
      var res = [];
     
      for (var i = 0, len = a.length; i < len; i++) {
        for (var j = i + 1; j < len; j++) {
          // 这一步十分巧妙
          // 如果发现相同元素
          // 则 i 自增进入下一个循环比较
          if (a[i] === a[j])
            j = ++i;
        }
     
        res.push(a[i]);
      }
     
      return res;
    }
     
     
    var a = [1, 1, '1', '2', 1];
    var ans = unique(a);
    console.log(ans); // => ["1", "2", 1]
    
    5、
    function unique(a) {
      return a.concat().sort().filter(function(item, pos, ary) {
        return !pos || item != ary[pos - 1];
      });
    }
     
     
    var a = [1, 1, 3, 2, 1, 2, 4];
    var ans = unique(a);
    console.log(ans); // => [1, 2, 3, 4]
    6、
    function unique(a) {
      var seen = {};
     
      return a.filter(function(item) {
        return seen.hasOwnProperty(item) ? false : (seen[item] = true);
      });
    }
     
     
    var a = [1, 1, 3, 2, 1, 2, 4];
    var ans = unique(a);
    console.log(ans); // => [1, 3, 2, 4]
    7、
    
    
    function unique(a) {
      var ret = [];
      var hash = {};
     
      for (var i = 0, len = a.length; i < len; i++) {
        var item = a[i];
     
        var key = typeof(item) + item;
     
        if (hash[key] !== 1) {
          ret.push(item);
          hash[key] = 1;
        }
      }
     
      return ret;
    }
     
     
    var a = [1, 1, 3, 2, '4', 1, 2, 4, '1'];
    var ans = unique(a);
    console.log(ans); // => [1, 3, 2, "4", 4, "1"]
    8、
    function unique(a) {
      return Array.from(new Set(a));
    }
     
    var a = [{name: "hanzichi"}, {age: 30}, new String(1), new Number(1)];
    var ans = unique(a);
    console.log(ans); // => [Object, Object, String, Number]
  • 相关阅读:
    2019-04-02 cast and covert
    2019-04-01 为什么零售业务流行起来了?
    2019-04-01 银行的零售业务和对公业务
    服务器推送更新
    webpack 大概
    webpack
    react Hooks
    react 表单受控和非受控
    eslint规则
    react系列笔记:第三记-redux-saga
  • 原文地址:https://www.cnblogs.com/chenjinxinlove/p/5579153.html
Copyright © 2011-2022 走看看