function Map(){
this.map = new Object();
this.length = 0;
this.size = function(){
return this.length;
}
this.put = function(key, value){
if( !this.map['_' + key])
{
++this.length;
}
this.map['_' + key] = value;
}
this.remove = function(key){
if(this.map['_' + key])
{
--this.length;
return delete this.map['_' + key];
}
else
{
return false;
}
}
this.containsKey = function(key){
return this.map['_' + key] ? true:false;
}
this.get = function(key){
return this.map['_' + key] ? this.map['_' + key]:null;
}
this.inspect=function(){
var str = '';
for(var each in this.map)
{
str+= '\n'+ each + ' Value:'+ this.map[each];
}
return str;
}
}
------------------------------------------
测试程序
//测试Map的调用方法
function testMap(){
var testmap=new Map();
alert("cur size:" + testmap.size());
alert("get bu cunzai:" + testmap.get("bu cunzai"));
testmap.put("01","michael");
testmap.put("01","michael1");
testmap.put("01","michael11");
testmap.put("01","michael1111");
testmap.put("011","michael1111");
testmap.put("object",new Array());
testmap.put("number",1234);
testmap.put(78944444444444444422222222222222,1234);
testmap.put("function",function(num){return num;});
//alert("function:"+ testmap.get("function")(789));
alert("function:"+ testmap.get("function")(78944444444444444422222222222222));
alert ("cur size:" + testmap.size() + "inspect:" + testmap.inspect());
alert("remove function:" + testmap.remove("function"));
alert("remove object:" + testmap.remove("object"));
testmap.put("02","michael2");
testmap.put("022","achang2");
testmap.put("022","achang3");
alert ("cur size:" + testmap.size() + "inspect:" + testmap.inspect());
var key="02"
if (testmap.containsKey(key)){
var value=testmap.get(key);
alert ("02 first|"+value);
}else{
alert("no Cotain" + key);
}
alert("remove:" + testmap.remove("02"));
alert("cur size:" + testmap.size());
alert( testmap.remove("0000002"));
alert("cur size:" + testmap.size());
alert("contain:" + testmap.containsKey("0000002"));
if (testmap.containsKey(key)){
var value=testmap.get(key);
alert ("02 |"+ value);
}else{
alert ("no Contain:"+key);
}
}
testMap();
分享到:
相关推荐
本文介绍了es6 javascript的map数据结构,分享给大家,具体如下: Map 结构的目的和基本用法 JavaScript 的对象( Object), 本质上是键值对的集合( Hash 结构), 但是传统上只能用字符串当作键。 这给它的使用...
Map数据结构 数据结构 JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能⽤字符串当作键。这给它的使⽤带来了很⼤的限 制。 为了解决这个问题,ES6 提供了 Map 数据结构。它类似于...
javascript map类。类中有相应demo,在javascript中实现Map的一个类,包括map中对应的一些数据结构相关算法。
JavaScript比较表中的数据结构...如何添加统计信息至少需要三种类型的数据结构的统计信息:值的索引集合,例如将键映射到值的数组或向量集合例如唯一值的Map或Record Collection-Set查看如何在其他语言中实现测试代码
javascript实现数据结构题 使用javascript实现经典的数据结构面试题。练手和温习 水平有限,如有缺漏,望见谅! 文件结构: 1)ADT ———— 抽象数据类型(ADT) 包含:list(列表),llist(链表),queue(队列)...
javaScript模拟的HashMap数据结构,可以方便的put和get。几乎和Java中HashMap类的功能一模一样。非常好用的!
OSet 是一个非常小的 JavaScript 库,提供有序的 set/map 数据结构,即提供 set/map 功能的数据结构,其中保留了项目的插入顺序。 如果应该持有一组项目,这些类型的数据结构很重要,并且能够以特定顺序对项目进行...
js-collections-map-set 示例代码库,用于演示JavaScript Map和Set数据结构。 设置与数组 设置+数组=更好在一起!
高性能JavaScript应用程序的数据结构的集合,其中包括: : 扩展DataView以实现类似C的结构。 基于DataView的ObjectView,字符串,数字等数组。 具有可选字段和大小可变的字段的ObjectView。 - ArrayView支持...
本文实例讲述了ES6新数据结构Map功能与用法。分享给大家供大家参考,具体如下: 新数据结构Map JavaScript中对象的本质是键值对的集合,但是键只能是字符串。为了弥补这种缺憾,ES6带来了一种新的数据结构Map。Map也...
和笔者一同巩固前端基础知识,了解并熟悉框架实现原理,数据结构与算法训练吧~ Algorithm-training JavaScript-training 实现 Array.prototype.reduce 方法 编程题:实现一个 add 方法 编程题:不产生新数组,删除...
ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set 本身是一个构造函数,用来生成 Set 数据结构。 只能接受数组,采用new的方式来实例化使用。 创建Set机构时,可以立即设置...
一个关联数组 Map 类型的数据结构,用于构建在上的非常大的分布式数据集。 此 JavaScript 实现符合,该描述了一种 HAMT 算法,用于使用内容寻址块构建任意大小的均匀分布的关联数组。 例子 import fs from 'fs/...
第321题Javascript 面试问题 集.js 实现 Set 及其功能 地图.js 实现 Map 及其功能 堆栈.js 实现 Stack 及其功能 队列.js 实现Queue及其功能 链表.js 实现链表及其功能 程序.js 此文件包含有助于更好地理解语言语法的...
JavaScript中循环语句不少,for、for in、for of和forEach循环,今天对比Array、Object、Set(ES6)、Map(ES6)四种数据结构循环语句支持的情况及区别。 新建四种数据类型的测试数据 let arr = [1, 2, 3, 4, 5, 6];...
序列化几乎所有固有JavaScript数据类型和数据结构,包括非JSON固有的数据类型和数据结构,例如ArrayBuffer,BigInt,Date,Map,RegExp,Set和TypedArray。 序列化原始包装器对象,稀疏数组,有符号零和循环引用。 ...
JavaScript集合(set) 可以使用集合对象 Map、Set 和WeakMap 存储值和对象。通过这些对象,可以使用键或值而非索引来轻松添加和检索成员。
“ JavaScript缺少的数据结构,数据类型和算法!” -马克吐温 安装 纱 $ yarn add @clarketm/super Npm $ npm install @clarketm/super --save 用法 // 1. import `each` module `independently` import { Array ,...
吗啡 用JavaScript编写的完整数据结构库。 数据结构 堆 队列 出队 哈希图 哈希集 堆 链表 MultiHashMap 作者 Zakaria Maaraki-初期工作 执照 此项目已获得MIT许可证的许可-有关详细信息,请参阅文件