JS自定义对象实现Java中Map对象功能的方法


Posted in Javascript onJanuary 20, 2015

本文实例讲述了JS自定义对象实现Java中Map对象功能的方法。分享给大家供大家参考。具体分析如下:

Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。

这里我创建一个自定义对象,这个对象内包含一个数组来存储数据,数据对象是一个Key,可以实际存储的内容!
 
这里Key,你要使用String类型,和Java一样,你可以进行一些增加,删除,修改,获得的操作。

使用很简单,我先把工具类给大家看下:

/** 

 * @version 1.0 

 * 用于实现页面 Map 对象,Key只能是String,对象随意 

 */  

var Map = function(){  

    this._entrys = new Array();  

      

    this.put = function(key, value){  

        if (key == null || key == undefined) {  

            return;  

        }  

        var index = this._getIndex(key);  

        if (index == -1) {  

            var entry = new Object();  

            entry.key = key;  

            entry.value = value;  

            this._entrys[this._entrys.length] = entry;  

        }else{  

            this._entrys[index].value = value;  

        }          

    };  

    this.get = function(key){  

        var index = this._getIndex(key);  

        return (index != -1) ? this._entrys[index].value : null;  

    };  

    this.remove = function(key){  

        var index = this._getIndex(key);  

        if (index != -1) {  

            this._entrys.splice(index, 1);  

        }  

    };  

    this.clear = function(){  

        this._entrys.length = 0;;  

    };  

    this.contains = function(key){  

        var index = this._getIndex(key);  

        return (index != -1) ? true : false;  

    };  

    this.getCount = function(){  

        return this._entrys.length;  

    };  

    this.getEntrys =  function(){  

        return this._entrys;  

    };  

   this._getIndex = function(key){  

        if (key == null || key == undefined) {  

            return -1;  

        }  

        var _length = this._entrys.length;  

        for (var i = 0; i < _length; i++) {  

            var entry = this._entrys[i];  

            if (entry == null || entry == undefined) {  

                continue;  

            }  

            if (entry.key === key) {//equal  

                return i;  

            }  

        }  

        return -1;  

    };  

}

 
如果你不懂Js中对象的创建等一些基础知识,自己可以网上查一下。
// 自定义Map对象  

var map = new Map();  

map.put("a","a");  

alert(map.get("a"));  

map.put("a","b");  

alert(map.get("a"));

 
先弹出 a 后面弹出 b ,因为后面的会覆盖前面的!

其他方法大家自己写写看!

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
FireFox中textNode分片的问题
Apr 10 Javascript
js chrome浏览器判断代码
Mar 28 Javascript
js中关于String对象的replace使用详解
May 24 Javascript
精心挑选的15个jQuery下拉菜单制作教程
Jun 15 Javascript
javascript实现图片循环渐显播放的方法
Feb 24 Javascript
javascript与jquery中的this关键字用法实例分析
Dec 24 Javascript
jQuery插件datatables使用教程
Apr 21 Javascript
jQuery插件实现图片轮播特效
Jun 16 Javascript
js上下视差滚动简单实现代码
Mar 07 Javascript
ionic2自定义cordova插件开发以及使用(Android)
Jun 19 Javascript
bing Map 在vue项目中的使用详解
Apr 09 Javascript
vue完成项目后,打包成静态文件的方法
Sep 03 Javascript
JavaScript数组Array对象增加和删除元素方法总结
Jan 20 #Javascript
DOM基础教程之使用DOM + Css
Jan 20 #Javascript
jquery+ajax实现跨域请求的方法
Jan 20 #Javascript
嵌入式iframe子页面与父页面js通信的方法
Jan 20 #Javascript
javascript浏览器窗口之间传递数据的方法
Jan 20 #Javascript
用队列模拟jquery的动画算法实例
Jan 20 #Javascript
jQuery 处理页面的事件详解
Jan 20 #Javascript
You might like
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
2014/08/18 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
JS OOP包机制,类创建的方法定义
2009/11/02 Javascript
JavaScript 空位补零实现代码
2010/02/26 Javascript
jquery 新浪网易的评论块制作
2010/07/01 Javascript
jquery异步调用页面后台方法&amp;#8207;(asp.net)
2011/03/01 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
Javascript实现关联数据(Linked Data)查询及注意细节
2013/02/22 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
JavaScript加强之自定义event事件
2013/09/21 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
Vue动态控制input的disabled属性的方法
2018/06/26 Javascript
微信小程序导航栏跟随滑动效果的实现代码
2019/05/14 Javascript
Node 模块原理与用法详解
2020/05/13 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
Python实现计算文件夹下.h和.cpp文件的总行数
2015/04/23 Python
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
Python骚操作之动态定义函数
2019/03/26 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
浅析HTML5 Landmark
2020/09/11 HTML / CSS
英文简历自荐信范文
2013/12/11 职场文书
赞美老师的演讲稿
2014/05/22 职场文书
幼儿园课题方案
2014/06/09 职场文书
拔河比赛口号
2014/06/10 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
五年级学生期末评语
2014/12/26 职场文书
给领导的感谢信范文
2015/01/23 职场文书