JavaScript学习之路<八>


Demo 1:
//模拟Java中的Map
        
        function Map(){
            
            //private
            var obj = {};//空的对象容器,承放键值对
            //put
            this.put = function(key,value){
                obj[key] = value;
            };
            
            //size方法,获得容器的个数
            this.size = function(){
                var count = 0;
                for(var attr in obj){
                    count++;
                }
                return count;
            };
            
            //get方法
            this.get = function(key){
                if(obj[key] || obj[key] === 0 || obj[key] === false){
                    return obj[key];
                }else{
                    return null;
                }
            };
        }
        //remove方法
        this.remove = function(key){
            if(obj[key] || obj[key] === 0 || obj[key] === false){
                delete obj[key];
            }
        };
        //eachMap方法
        this.eachMap = function(fn){
            for(var attr in obj){
                fn(attr,obj[attr]);
            }
        };
        //模拟Java里的Map
        var obj = new Map();
        obj.put("0",12);
        obj.put("1",13);
        obj.put("2",13);
        obj.eachMap(function(key,value){
            alert(key+":"+value);
        });
Demo 2
var arr = [2,1,2,10,2,3,5,5,1,10,13];
       
        //js对象的特性 在js对象中key是永远不会重复的
       
        //1、把数组转成js的对象
        //2、把数组中的值,变成js对象当中的key
        //3、把这个对象再还原成数组
       
        //把数组转成js的对象
        function toObject(arr){
            var obj = {};
            for(var i=0;i<arr.length;i++){
                obj[arr[i]] = true;
            }
            return obj;
        }
       
        //把对象转成数组
        function toArray(obj){
            var arr = [];
            for(var attr in obj){
                if(obj.hasOwnProperty(attr)){
                    arr.push(attr);
                }
            }
            return arr;
        }
       
        //综合的方法 去掉数组中的重复项
        function union(newarr){
            return toArray(toObject(newarr));
        }
       
        alert(union(arr));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值