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

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

时间: 2024-10-29 23:13:39

JavaScript笔记 - Object对象特性的应用的相关文章

JavaScript中Object对象

Object对象是提供所有JavaScript对象通用的功能.使用方法: obj = new Object([value]) 其中obj是必选项.要赋值为 Object 对象的变量名.www.82676666.com value是可选项.任意一种 JScript 基本数据类型.(Number.Boolean.或 String.)如果 value 为一个对象,返回不作改动的该对象.如果 value 为 null.undefined,或者没有给出,则产生没有内容的对象. Object 对象被包含在所

JavaScript复习笔记:Object(对象)

1:Js内置对象有 Number,Array,String,Date,Math 2:自定义对象 js提供了构建自定义对象.使用对象而不只是一个函数集合,是编写清洁,高效,可重复是的js代码的关键; 1)使用对象语法: 一个对象实际是只是一个容器,它将多个值,多个函数组合在一起.对象的值被称为属性,对象的函数被称为方法; ※使用new关键字创建对象 ex: var x = new Number('5') ※对象的使用:ObjectName.propertyName ->获取属性 ex: var s

javascript 的object 对象

object是ECMAscript使用最多的一种类型.使用object实例的方式有两种.一种是用new操作符,另一种是对象字面量方法. 1.new操作符: 1 var person=new Object(); 2 person.name="zhangsan"; 3 person.age=21; 2.对象字面量: 1 var person={ 2 name:"张三", 3 age:29 4 }; 在对象字面量中,对象的属性名可以使用字符串,即也可以写成: 1 var

JavaScript:对Object对象的一些常用操作总结

JavaScript对Object对象的一些常用操作总结. 一.Object.assign() 1.可以用作对象的复制 var obj = { a: 1 }; var copy = Object.assign({}, obj); console.log(copy); // { a: 1 } 2.可以用作对象的合并 var o1 = { a: 1 }; var o2 = { b: 2 }; var o3 = { c: 3 }; var obj = Object.assign(o1, o2, o3)

javascript学习笔记---ECMAScriptECMAScript 对象----定义类或对象

使用预定义对象只是面向对象语言的能力的一部分,它真正强大之处在于能够创建自己专用的类和对象. ECMAScript 拥有很多创建对象或类的方法. 原始的方式 因为对象的属性可以在对象创建后动态定义(后绑定),类似下面的代码: var oCar = new Object; oCar.color = "blue"; oCar.doors = 4; oCar.mpg = 25; oCar.showColor = function() { alert(this.color); };不过这里有一

[Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法

js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+1}" 反射获取函数源代码的功能很强大,使用函数对象的toString方法有严重的局限性.toString方法的局限性ECMAScript标准对函数对象的toString方法的返回结果(即该字符串)并没有任何要求.这意味着不同的js引擎将产生不同的字符串,甚至产生的字符串与该函数并不相关. 如果函数

JavaScript Object对象

Object对象 1. 介绍 Object对象,是所有JavaScript对象的超类(基类).定义了Js对象的基本方法和属性. 2. 构造函数 2.1 new Object() :返回一个Object实例 2.2 new Object(value) :根据value的值,返回不同的对象(Number.Boolean.String) 参数: ①value {number | bool | string} :一个数字.布尔值或者字符串 返回值: {Number.Boolean.String} 返回一

javascript学习笔记---ECMAScriptECMAScript 对象----修改对象

通过使用 ECMAScript,不仅可以创建对象,还可以修改已有对象的行为. prototype 属性不仅可以定义构造函数的属性和方法,还可以为本地对象添加属性和方法. 创建新方法 通过已有的方法创建新方法Number.prototype.toHexString = function() { return this.toString(16); }; 在此环境中,关键字 this 指向 Number 的实例,因此可完全访问 Number 的所有方法.有了这段代码,可实现下面的操作: var iNu

javascript 核心语言笔记 6 - 对象

对象是 JavaScript 的基本数据类型.是一种复合值:将很多值聚合在一起.对象可以看做是无序集合,每个属性都是一个名/值对.这种基本数据结构还有很多叫法,比如「散列」(hash).「散列表」(hashtable).「字典」(dictionary).「关联数组」(associative array).JavaScript 还可以从一个称为 原型 的对象继承属性 JavaScript 对象是动态的 -- 可以新增属性也可以删除属性,除了字符串.数字.布尔值.null 和 undefined 之