js06--利用js给数组去重

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>
        <script type=text/javascript charset=utf-8>
        //数组去重,排序效率底下。
        
        var arr = [2,1,2,10,2,3,5,5,1,10,13];    //object
        // js对象的特性 : 在js对象中 key 是永远不会重复的 
        var obj = new Object();
        obj.name = 'z3';
        obj.age = 20 ;
        alert(obj.name);
        obj.name = 'w5';
        alert(obj.name);
        
        
        // 1 把数组转成一个js的对象
        // 2 把数组中的值,变成js对象当中的key
        // 3 把这个对象 再还原成数组
        
        // 把数组转成对象
        function toObject(arr){
            var obj = {} ; // 私有的对象
            var j ;
            for(var i=0 , j= arr.length ; i<j; i++){
                    obj[arr[i]] = true ;
            }
            return obj ;
        }
        
        // 把这个对象转成数组
        function keys(obj){
            var arr = [] ; // 私有对象
            for(var attr in obj){
                if(obj.hasOwnProperty(attr)){        //YUI底层代码
                    arr.push(attr);
                }
            }
            return arr ;
        }
        
        //综合的方法 去掉数组中的重复项
        function uniq(newarr){
            return keys(toObject(newarr));
        }
        
        alert(uniq(arr));
        </script>
    </head>
    <body>
    </body>
</html>
复制代码

 



本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/6861232.html,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值