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

Posted 苏贺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript笔记 - Object对象特性的应用相关的知识,希望对你有一定的参考价值。

      可以依据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对象特性的应用的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 高级程序设计读书笔记

《JavaScript权威指南》学习笔记——Day3

javascript学习笔记 - 引用类型

JS数据类型之Object(一)对象知识扫盲

JavaScript判断对象是否为空对象的几种方法

不懂急,请问javascript对象的问题?