以太坊 摩尔投票法 java反射机制 CPU 人工智能 xaml webview concurrency ros 打印 icons vue案例 jq入口函数 hadoop组件 tomcat调优和jvm调优 nodejs后端开发 python课程 python中的join函数 python免费教程 java正则替换 java安装教程 java对象是什么 java中文文档 java的安装 linux下载安装 python教程视频 一键刷入recovery groupby 日历制作模板 主板芯片组天梯图 js绝对值 掌门一对一下载 tableau下载 语音分析软件 头条视频解析 ajaxpro 红米手机怎么连接电脑 例外被抛出且未被接住 影音先锋下载速度慢 捷速pdf编辑器 接口自动化测试框架
当前位置: 首页 > 学习教程  > 编程语言

去除数组重复值的基本方法?

2020/12/5 10:45:29 文章标签:

在笔试中很大概率会出现的一类题,去除数组里面的重复值。方法有很多,本人整理了3种最基本的方法。 1:利用双循环完成 /*** returns 返回一个新的数组* param {Array} arr 接收一个数组*/ function method1(arr){var newarr []; //创建一…

在笔试中很大概率会出现的一类题,去除数组里面的重复值。方法有很多,本人整理了3种最基本的方法。
1:利用双循环完成

/**
 * @returns 返回一个新的数组
 * @param {Array} arr 接收一个数组
 */
function method1(arr){
    var newarr = [];    //创建一个数组用来存储
    for(var i = 0; i < arr.length; i++){    //遍历我们传入的数组,得到其中的数据
        var isone = true;   //默认这个数据是第一次出现
        for(var j = 0; j < newarr.length; j++){    //遍历存储数组,得到其中的数据
            if(newarr[j] == arr[i]){   //如果为真,则说明存储数组中已经有了这个数,并将isone赋值为false;为假则不改变
                isone = false;  
            }
        }
        if(isone){  //如果为真,则将这个数存储在新的数组中
            newarr[newarr.length] = arr[i];
        }
    }
    return newarr;
}

2:利用数组的api——indexOf来完成

function method2(arr){
    var newarr = [];
    for(var i = 0; i < arr.length; i++){
        if(newarr.indexOf(arr[i]) == -1){   //在newarr数组中查找是否存在arr[i],如果不存在则返回-1;如果存在则返回arr[i]在newarr数组中的下标。
            newarr[newarr.length] = arr[i]; //将值赋予newarr数组。
        }
    }
    return newarr;
}

3:利用对象的属性名不能重复的特点来完成去除重复值

function method3(arr){
    var newarr = [];
    var hash = {};  //利用对象的属性名不能重复来进行判断,看是否重复
    for(var i = 0; i < arr.length; i++){
        if(hash[arr[i]] === undefined){     //如果hash对象中以arr[i]这个值作为属性名的属性值是undefined
            newarr[newarr.length] = arr[i];     //将arr[i]这个值添加到newarr数组中
            hash[arr[i]] = '已经出现过一次了';    //给hash对象添加成员,属性名为arr[i];属性值赋值为一个统一值
        }
    }
    return newarr;
}

总结:去重的方法很多,笔试题中也经常出现,熟练的掌握三种以上的方法是很有必要的。


本文链接: http://www.dtmao.cc/news_show_450317.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?