JavaScript创建Map对象(转)
JavaScript 里面本身没有map对象,用JavaScript的Array来实现Map的数据结构。
- /*
- * MAP对象,实现MAP功能
- *
- * 接口:
- * size() 获取MAP元素个数
- * isEmpty() 判断MAP是否为空
- * clear() 删除MAP所有元素
- * put(key, value) 向MAP中增加元素(key, value)
- * remove(key) 删除指定KEY的元素,成功返回True,失败返回False
- * get(key) 获取指定KEY的元素值VALUE,失败返回NULL
- * element(index) 获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
- * containsKey(key) 判断MAP中是否含有指定KEY的元素
- * containsValue(value) 判断MAP中是否含有指定VALUE的元素
- * values() 获取MAP中所有VALUE的数组(ARRAY)
- * keys() 获取MAP中所有KEY的数组(ARRAY)
- *
- * 例子:
- * var map = new Map();
- *
- * map.put("key", "value");
- * var val = map.get("key")
- * ……
- *
- */
- function Map() {
- this.elements = new Array();
- //获取MAP元素个数
- this.size = function() {
- return this.elements.length;
- }
- //判断MAP是否为空
- this.isEmpty = function() {
- return(this.elements.length < 1);
- }
- //删除MAP所有元素
- this.clear = function() {
- this.elements = new Array();
- }
- //向MAP中增加元素(key, value)
- this.put = function(_key, _value) {
- this.elements.push( {
- key : _key,
- value : _value
- });
- }
- //删除指定KEY的元素,成功返回True,失败返回False
- this.remove = function(_key) {
- var bln = false;
- try{
- for(i = 0; i < this.elements.length; i++) {
- if(this.elements[i].key == _key) {
- this.elements.splice(i, 1);
- return true;
- }
- }
- } catch(e) {
- bln = false;
- }
- return bln;
- }
- //获取指定KEY的元素值VALUE,失败返回NULL
- this.get = function(_key) {
- try{
- for(i = 0; i < this.elements.length; i++) {
- if(this.elements[i].key == _key) {
- return this.elements[i].value;
- }
- }
- } catch(e) {
- return null;
- }
- }
- //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
- this.element = function(_index) {
- if(_index < 0 || _index >= this.elements.length) {
- return null;
- }
- return this.elements[_index];
- }
- //判断MAP中是否含有指定KEY的元素
- this.containsKey = function(_key) {
- varbln = false;
- try{
- for(i = 0; i < this.elements.length; i++) {
- if(this.elements[i].key == _key) {
- bln = true;
- }
- }
- } catch(e) {
- bln = false;
- }
- return bln;
- }
- //判断MAP中是否含有指定VALUE的元素
- this.containsValue = function(_value) {
- var bln = false;
- try{
- for(i = 0; i < this.elements.length; i++) {
- if(this.elements[i].value == _value) {
- bln = true;
- }
- }
- } catch(e) {
- bln = false;
- }
- return bln;
- }
- //获取MAP中所有VALUE的数组(ARRAY)
- this.values = function() {
- var arr = new Array();
- for(i = 0; i < this.elements.length; i++) {
- arr.push(this.elements[i].value);
- }
- return arr;
- }
- //获取MAP中所有KEY的数组(ARRAY)
- this.keys = function() {
- var arr = new Array();
- for(i = 0; i < this.elements.length; i++) {
- arr.push(this.elements[i].key);
- }
- return arr;
- }
- }
- var map = new Map();
- map.put("key1", "value1");
- map.put("key2", "value2");
- map.put("key3", "value3");
- //var val = map.get("key1");
- // var val = map.containsKey("key1");
- // var val = map.element(2).value;
- var arr=map.keys();
- for(var i=0;i<arr.length;i++){
- alert(map.get(arr[i]));
- }
- // alert(val);
转载于:https://www.cnblogs.com/ranzige/p/3830077.html
JavaScript创建Map对象(转)相关推荐
- JavaScript 创建类/对象的几种方式
在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活的. JS对象是一种复合类型,它允许你通过变量 ...
- 用javascript 创建ActiveX对象时出现:Automation server can't create object(Automation 服务器不能创建对). 错误的解决办法。
今天,想实现在客户端读取一个EXCEL文件到一个Table中 ,所以写了如下代码: function readExcel() ... { var fileName = document.get ...
- javaScript中的map对象
Map Map 对象保存键值对,并且能够记住键的原始插入顺序.任何值(对象或者原始值) 都可以作为一个键或一个值. 描述 一个Map对象在迭代时会根据对象中元素的插入顺序来进行 - 一个 for-of ...
- 【Flutter】Dart 数据类型 Map 类型 ( 创建 Map 集合 | 初始化 Map 集合 | 遍历 Map 集合 )
文章目录 一. Dart 数据类型 Map 类型 二. Map 类型初始化并赋值 1. 创建 Map 对象同时进行初始化操作 2. 先创建 Map 对象再进行赋值 三. Map 集合遍历 1. 使用 ...
- TypeScript--笔记二(Map对象、联合类型、接口)
TypeScript Map 对象 创建Map对象及初始化 Map 相关的函数与属性 联合类型 声明式 联合类型 函数参数使用 联合类型 联合类型数组 接口 示例 联合类型和接口 接口和数组 接口继承 ...
- Google Map API使用详解(十)——使用JavaScript创建地图详解(上)
在网页MyTest1.html中我们已经使用了JavaScript来创建地图,下面总结一下使用JavaScript创建一个地图的核心步骤: 1. 导入地图API类库. <script src= ...
- 创建健壮的isArray()函数(JavaScript中判断对象类型的种种方法)
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
- [置顶] 深入浅出Javascript(三)创建自定义对象以及属性、方法
怎么样创建一个对象? 利用Object创建自定义对象 JavaScript能够自定义对象来扩展程序的功能,不仅如此,它还能扩展JavaScript提供的内置对象,新增内置对象的属性或方法 例如下面代码 ...
- QT通过JavaScript动态创建QML对象
QT通过JavaScript动态创建QML对象 通过JavaScript动态创建QML对象 动态创建对象 动态创建组件 从QML字符串创建对象 维护动态创建的对象 动态删除对象 通过JavaScrip ...
最新文章
- ICPC / CCPC / Codeforces / AtCoder 单词本
- How those spring enable annotations work--转
- java was datasource_使用Spring Boot配置Druid时dataSource无法被autowired
- java读取文件的方法是_Java读取文件方法大全
- Posterior decompression
- JUC多线程:synchronized锁机制原理 与 Lock锁机制
- 【转载】intellij idea如何将web项目打成war包
- PostgreSQL中的pg_hba.conf
- opencv 霍夫变换检测直线和圆
- python 表格模块 prettyTable 简单使用
- 爬虫(二)—解析真实网页(猫途鹰)
- 配置微信公众号之公众号绑定小程序
- Sniffer数据报文解码详解
- 一份超详细的Spring4常用知识清单!
- 若A、B为同阶矩阵且A、B均可逆,则AB亦可逆
- 中止执行后超过2年_失信被执行人怎么撤销 超过两年会撤销吗
- 解决redis缓存穿透、redis缓存雪崩问题
- emq无法启用mysql_EMQ开启mysql认证
- Windows环境下查看进程和杀死进程的命令
- 极光推送demo下载运行错误