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 相关文章推荐
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
Apr 07 Javascript
jQuery图片滚动图片的效果(另类实现)
Jun 02 Javascript
Js操作Select大全(取值、设置选中等等)
Oct 29 Javascript
JS控制一个DIV层在指定时间内消失的方法
Feb 17 Javascript
JS判断客户端是手机还是PC的2个代码
Apr 12 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
Jul 14 Javascript
JavaScript算法教程之sku(库存量单位)详解
Jun 29 Javascript
vue中实现移动端的scroll滚动方法
Mar 03 Javascript
layui表格checkbox选择全选样式及功能的实例
Mar 07 Javascript
vue-cli axios请求方式及跨域处理问题
Mar 28 Javascript
说说如何使用Vuex进行状态管理(小结)
Apr 14 Javascript
vue判断按钮是否可以点击
Apr 09 Vue.js
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
php生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
AJAX的使用方法详解
2017/04/29 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
Javascript 面向对象 重载
2010/05/13 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
js生成随机数的方法实例
2015/10/16 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
jQuery 中的 DOM 操作
2016/04/26 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
Vue的属性、方法、生命周期实例代码详解
2019/09/17 Javascript
[01:11:48]Fnatic vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python实现ftp客户端示例分享
2014/02/17 Python
Python获取网页上图片下载地址的方法
2015/03/11 Python
实例Python处理XML文件的方法
2015/08/31 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
使用Python读取大文件的方法
2018/02/11 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
python中四舍五入的正确打开方式
2021/01/18 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
三星法国官方网站:Samsung法国
2019/10/31 全球购物
研究生简历自我评价范文
2014/09/13 职场文书
幼儿园六一儿童节演讲稿
2015/03/19 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript