首页 > 编程语言 > 详细

数组去重的多种方法实现

时间:2016-11-08 00:44:04      阅读:354      评论:0      收藏:0      [点我收藏+]

<script>

    //第一种方式
    var arr=[23,1,34,7,1,3,5,2,3]; //定义一个数组
    var newArr = [];   //定义一个新的临时数组
    var result = {};   //hash表
    for(var i=0;i<arr.length;i++){    //循环遍历数组
        if(!result[arr[i]]){  //如果遍历到的数组不在hash表中
            result[arr[i]] = true;  //将当前遍历到的数组元素存入到hash表中
            newArr.push(arr[i]);  //将当前元素push到新数组
        }
    }
    console.log(newArr);

    //第二种方法
    var arr=[23,1,34,7,1,3,5,2,3]; //定义一个数组
    var newArr = [];   //定义一个新的临时数组
    for(var i=0;i<arr.length;i++){   //遍历数组
        if(newArr.indexOf(arr[i])==-1) newArr.push(arr[i]);
        //判断当前元素是否能在临时数组中找到,如果没找到就将其追加到临时数组中,再对当前元素后面的元素继续查找以及比较
    }

    console.log(newArr);

    //第三种方式
    var arr=[23,1,34,7,1,3,5,2,3]; //定义一个数组
    arr.sort();   //先将数组排序
    var newArr=[arr[0]];   //定义一个新数组,并将数组第一个元素放到新数组中
    for(var i=0;i<arr.length;i++){
        if(arr[i] !==newArr[newArr.length-1]){ //通过判断相邻两项是否相等,然后项新数组中追加元素,返回新数组
            newArr.push(arr[i]);
        }
    }
    console.log(newArr);

</script>

数组去重的多种方法实现

原文:http://www.cnblogs.com/amaya-mei/p/6041035.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!