zoukankan      html  css  js  c++  java
  • 数组去重的两种最常用方法

     

    第1种 - 哈希法

    复制代码
    var arr = [0,0,1,2,4,3, 3, '3', '3', '我我', '我我', '啊'];
    var uniqueHash = function (arr) {
        var res = [];
        var hash = {};
        arr.forEach(function (m) {
            if (!hash[m]) {
                res.push(m);
                hash[m] = true;
            }
        });
        return res;
    };
    console.log('hash', uniqueHash(arr));
    复制代码

    原理:遍历目标数组,创建一个hash对象将数组的值作为指针保存起来,如果已经存在就跳过,反之就把这个指针的值设置为true。

    第2种 - 遍历法

    复制代码
    var arr = [0,0,1,2,4,3, 3, '3', '3', '我我', '我我', '啊'];
    var uniqueKey = function (arr) {
        var res = [];
        arr.forEach(function (m, i) {
            if (m != res[res.length - 1]) {
                res.push(m)
            }
        });
        return res;
    };
    
    console.log('key', uniqueKey(arr));
    复制代码

    原理:遍历目标数组,然后push到一个空数组里面,再逐一对比新的数组里的每一个值,如果相等就跳过,反之就push。

  • 相关阅读:
    案例 :表格隔行变色效果
    案例:百度换肤
    案例:排他思想(算法)
    JS运动基础
    DOM的高级应用
    jsDOM操作应用
    js中的DOM基础
    js实现向左向右无缝轮动
    JavaScript定时器的使用
    JavaScript基础2
  • 原文地址:https://www.cnblogs.com/zhangxiaolei521/p/6669859.html
Copyright © 2011-2022 走看看