码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript笔记 - Object对象特性的应用

时间:2018-02-18 21:57:11      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:回调函数   私有   get   map对象   回调   cti   count   还原   pos   

      可以依据js对象中key是永远不会重复的原则,来模拟Map类型以及去除数组重复项。

1、模拟Map类型

(1)构造Map对象

function Map(){
    //private
     var obj = {}; // 空的对象容器,存放键值对

    //put方法
    this.put = function (key,value){
        obj[key] = value;
    }
    //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];
        }
    }
    //size方法
    this.size = function(){
        var count= 0;
         for(var arr in obj){
             count++;
         }
         return count;
    }
    //遍历方法,采用回调函数的方式
    this.eachMap = function(fn){
         for(var arr in obj){
             fn(arr,obj[arr]);
         }
    }
}

(2)测试代码

//模拟java里的Map类型
 var m = new Map();
 m.put(‘01‘,‘sscs‘);
 alert(m.size());
 alert(m.get(‘01‘));
 m.remove(‘01‘);

//遍历对象元素,传入的参数是一个函数
 m.eachMap(function(key,value){
     alert(key +":"+value);
 });

2、去除数组重复项

(1)实现代码

function unique(arr){
    //第一步:把数组中的值,变成js对象中的key
    var obj = {}; //私有对象
    for( var i = 0,j = arr.length;i<j;i++){
        obj[arr[i]] = true;
    }
    //第二部:再把js对象还原成数组
    var arr = [];//私有对象
    for(var attr in obj){
        if(obj.hasOwnProperty(attr)){
            arr.push(attr);
        }
    }
    return arr;
}

(2)测试程序

var arr = [1,1,3,4,5];
alert(unique(arr)); //显示1,3,4,5

JavaScript笔记 - Object对象特性的应用

标签:回调函数   私有   get   map对象   回调   cti   count   还原   pos   

原文地址:https://www.cnblogs.com/sh086/p/8453206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!