zoukankan      html  css  js  c++  java
  • JavaScrip数组去重--终极版

    第一种

    var arr = [1,2,3,4,1,2,4,5,6];
    console.log(arr); Array.prototype.unique
    = function() { var n = []; //一个新的临时数组 for (var i = 0; i < this.length; i++) //遍历当前数组 { //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if (n.indexOf(this[i]) == -1) n.push(this[i]); } return n; }; console.log(arr.unique());

    第二种

    var arr = [1,2,3,4,1,2,4,5,6];
    console.log(arr);
    Array.prototype.unique = function()
    {
        var n = {},
            r = []; //n为hash表,r为临时数组
        for (var i = 0; i < this.length; i++) { //遍历当前数组
            if (!n[this[i]]) { //如果hash表中没有当前项
                n[this[i]] = true; //存入hash表
                r.push(this[i]); //把当前数组的当前项push到临时数组里面
            }
        }
        return r;
    };
    console.log(arr.unique());

    第三种

    var arr = [1,2,3,4,1,2,4,5,6];
    console.log(arr);
    Array.prototype.unique = function(){
        var n = [this[0]]; //结果数组
        for (var i = 1; i < this.length; i++) //从第二项开始遍历
        {
            //如果当前数组的第i项在当前数组中第一次出现的位置不是i,
            //那么表示第i项是重复的,忽略掉。否则存入结果数组
            if (this.indexOf(this[i]) == i) n.push(this[i]);
        }
        return n;
    };
    console.log(arr.unique());
  • 相关阅读:
    微信坚硬的后脚跟
    [项目整理]Win32,MFC的可执行文件只能运行一次
    美司法部索要维基解密志愿者谷歌账户内容
    QML性能
    OSGi 的核心配置、动态化及问题
    OSGi 的由来和本质特性
    机器视觉与计算机视觉
    人工智能与深度学习
    活着就能改变世界
    选择与执行
  • 原文地址:https://www.cnblogs.com/liu-fei-fei/p/6689667.html
Copyright © 2011-2022 走看看