首页 > 其他分享 >Js实现Map对象的代码

Js实现Map对象的代码

时间:2023-02-06 19:36:27浏览次数:42  
标签:Map arr return map 代码 value Js key var


<script type="text/javascript"><!--  
/**
* @author: 丸子
* @date: 2011-1-8
* map对象类,提供了put,get,remove,size,isEmpty等方法
*/
function Map() {
/**
* 构造函数
* @param {} key
* @param {} value
*/
var struct = function(key, value) {
this.key = key;
this.value = value;
}
/**
* 添加key对应的值,如果key已经存在则直接更新对应的值
* @param {} key
* @param {} value
*/
var put = function(key, value) {
for (var i = 0; i < this.arr.length; i++) {
if (this.arr[i].key === key) {
this.arr[i].value = value;
return;
}
}
this.arr[this.arr.length] = new struct(key, value);
}
/**
* 获取key对应的值
* @param {} key
* @return {}
*/
var get = function(key) {
for (var i = 0; i < this.arr.length; i++) {
if (this.arr[i].key === key) {
return this.arr[i].value;
}
}
return null;
}
/**
* 移除key对应的值
* @param {} key
*/
var remove = function(key) {
var v;
for (var i = 0; i < this.arr.length; i++) {
v = this.arr.pop();
if (v.key === key) {
continue;
}
this.arr.unshift(v);
}
}
/**
* 获取map对象的长度
* @return {}
*/
var size = function() {
return this.arr.length;
}
/**
* 判断map对象是否为空
* @return {}
*/
var isEmpty = function() {
return this.arr.length <= 0;
}
this.arr = new Array();
this.get = get;
this.put = put;
this.remove = remove;
this.size = size;
this.isEmpty = isEmpty;
}
// -->
</script>

<script type="text/javascript"><!--
var map = new Map();
map.put("re","redhacker");
map.put("do","douguoqiang");
map.put("gq","dougq");
alert("map的大小为:" + map.size())
alert("key为re的map中存储的对象为:" + map.get("do"));
map.remove("re");
alert("移除key为re的对象后,获取key为re的map中存储的对象为:" + map.get("do"));
alert("map移除一个元素后的大小为:" + map.size());
alert("map是否是一个空map:" + map.isEmpty());
// -->
</script>

标签:Map,arr,return,map,代码,value,Js,key,var
From: https://blog.51cto.com/u_15955464/6040290

相关文章

  • SpringBoot响应Json数据乱码通过配置解决
    场景实现把SpringBoot的response编码设置为utf-8找到application.properties配置文件添加如下:#设置响应为utf-8spring.http.encoding.force-response=true 再次刷新浏览器......
  • 保存数据到手机内存代码优化(QQ登录保存密码)
    packagecom.itheima28.qqlogin;importjava.io.File;importjava.util.Map;importcom.itheima28.qqlogin.utils.Utils;importcom.itheima28.qqlogin.utils.UtilsOfSDCard......
  • java补充知识:权限修饰符&代码块&抽象类
    目录final修饰方法修饰类变量常量的使用细则权限修饰符的分类实际使用中修饰符的使用代码块局部代码块构造代码块静态代码块抽象类抽象类与抽象方法的定义格式抽象类和抽象......
  • CSharp: donet Stored procedure mapping with Entity Framework 6
    sql:IFEXISTS(select*fromsysobjectswhereid=object_id(N'[dbo].DepartmentMaster')andOBJECTPROPERTY(id,N'IsUserTable')=1)DROPTABLEDepartmentMas......
  • mapstrcut
    目录依赖属性映射代码如何使用依赖<java.version>1.8</java.version><org.mapstruct.version>1.3.0.Final</org.mapstruct.version></properties><depend......
  • Swift 4 JSON 解析指南
    Apple终于在Swift4的Foundation的模块中添加了对JSON解析的原生支持。虽然已经有很多第三方类库实现了JSON解析,但是能够看到这样一个功能......
  • Python-字符串str和json格式的转换
    我是精神抖擞王大鹏,不卑不亢,和蔼可亲~计算机硕士,目前小米大数据开发。日常会分享总结一些自己面试实际问题的回答,欢迎一起讨论。公众号:diting_dapengstr转jsonstr转换为js......
  • python的dict和json的区别
    在工作中经常用到数据传输,而数据传输用的是json字符串,那么这个形如字典dict的json,和json又有什么区别呢?区别Python的字典是一种数据结构,JSON是一种数据传输格式。json就......
  • mybatis-plus返回map自动转驼峰配置
     (一)mybatis-plus自带map下划线转驼峰配置类我们只需要在yml中配置一下object-wrapper-factory指定MybatisMapWrapperFactory就可以了mybatis-plus:mapper-loca......
  • js操作数据的方法总结
    数组遍历forEach该方法等同于for循环,其没有返回值结构:arr.forEach(回调函数,回调函数this的值)第二个参数当回调函数是箭头函数时无效用法:arr.forEach(funct......