`
thiner
  • 浏览: 29094 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

HashMap的JavaScript简洁实现

阅读更多
今天在工作中碰到一个问题,需要在JavaScript使用类似Java的HashMap的数据类型,可惜JavaScript自身不提供这种数据类型,于是想自己实现一个。
在Google上搜到一个老外论坛(http://www.hftonline.com/forum/showthread.php?t=12882)上的实现方式,感觉非常简洁明了,于是按照他的思路,扩充了一下,加了两个自己想要的方法,用着蛮爽。
var hashMap = {
    Set : function(key,value){this[key] = value},
    Get : function(key){return this[key]},
    Contains : function(key){return this.Get(key) == null?false:true},
    Remove : function(key){delete this[key]}
}

使用方法示例:
hashMap.Set("name","John Smith");
hashMap.Set("age",24);
hashMap.Get("name");//John Smith
hashMap.Contains("title");//false
hashMap.Contains("name");//true
hashMap.Remove("age");

够简洁吧。而且比用数组方式实现更好的地方在于,不会出现数组越界错误。
分享到:
评论
4 楼 clarkhill 2014-10-27  
不过话又说回来,JS应该不需要这么复杂的对象。可以用一个对象+数组来实现相似的功能。总是能够凑合的。
3 楼 clarkhill 2014-10-27  
如果你的key总是简单的字符串,其实可以直接使用任意js对象。但是如果你想用对象做key的话,就不行了。我现在就有这个问题,我可能需要用数组做key。唉。。。
2 楼 水木清华77 2013-11-14  
这个是稀疏矩阵吧
1 楼 zhulongxing_sz 2012-09-04  
Good!!正是我想要的,楼主真赞~~~

相关推荐

    Javascript实现和操作HashMap

    虽然JavaScript原生的`Map`对象提供了类似的功能,但在某些场景下,开发者可能需要自定义HashMap来满足特定的需求,例如优化性能或者实现特定的算法。本篇文章将深入探讨如何在JavaScript中实现HashMap以及如何进行...

    各类中文API (java、ajax、JavaScript、jQuery、mysql、oracle )

    例如,`java.io`包提供了处理输入和输出流的类,`java.net`包用于网络编程,而`java.util`包则包含了许多实用工具类,如ArrayList和HashMap。Java API的使用能够使开发者高效地构建跨平台的应用程序。 其次,AJAX...

    json与xml相互互转无jar包纯java实现,也可使用lib的jar实现功能。

    JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据交换格式,它们在Web服务、应用程序通信以及数据存储等领域扮演着重要角色。JSON以其简洁明了的语法,常用于轻量级的...

    利用反射实现对象转json格式字符串

    在Java编程中,反射是...这种实现方式虽然简洁,但并不适用于所有场景,特别是在处理复杂数据结构和性能要求高的应用中。在生产环境中,推荐使用成熟的JSON库如Jackson或Gson,它们提供了更高效、功能丰富的解决方案。

    Java通过jQuery实现ajax异步请求

    Map, Object> data = new HashMap(); data.put("key", "value"); // 设置响应内容类型为JSON response.setContentType("application/json; charset=UTF-8"); // 将数据转化为JSON并写入响应 PrintWriter ...

    struts2实现ajax

    在Struts2中实现Ajax(Asynchronous JavaScript and XML)可以极大地提升Web应用的用户体验,因为它允许部分页面动态更新,而无需整个页面刷新。以下是对Struts2实现Ajax的详细解释: 1. **Ajax基础**: Ajax的...

    Map转JSON的jar包

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁和易于阅读的特性,被广泛应用于前后端交互。当需要将Java中的Map对象转换为JSON字符串时,我们就需要用到特定的库来实现这一功能。本文将...

    jdk1.8_32.rar

    8. **新的HashMap和HashSet实现**:为了提高性能,JDK 1.8对`HashMap`和`HashSet`的实现进行了优化,尤其是容量为2的幂次时的性能得到了显著提升。 9. **并行GC(G1垃圾收集器)改进**:JDK 1.8中的G1(Garbage ...

    Xpath读取xml文件,实现文件缓存。

    同时,可以结合`java.util.HashMap`(Java)、`dict`(Python)或`Map`(JavaScript)等数据结构来实现缓存。 7. **性能优化**: 当大量使用XPath查询时,应考虑优化策略,比如编译XPath表达式以减少解析时间,或者...

    aviator 实现 List 的求和、排序、最大、最小值

    Aviator 是一个强大的 Java 表达式执行引擎,它允许你在运行时动态计算表达式,类似于 JavaScript 或者其他脚本语言。在Java应用中,Aviator 特别适合用于数据分析和处理,例如对 List 中的数据进行求和、排序、找出...

    实例059 - Map映射集合实现省市级联选择框

    总结来说,实例059展示了如何使用Java的Map数据结构来存储和管理省市级联选择框的数据,并结合前端的JavaScript和Ajax技术实现联动效果。这种方式不仅简洁高效,还能灵活适应数据的变化,是Web开发中处理这类问题的...

    精选_基于JSP实现的校园师生交流系统_源码打包

    "基于JSP实现的校园师生交流系统" 描述简洁明了,表明该系统是一个用于校园内部沟通的软件应用,主要功能可能包括教师与学生之间的消息传递、课程信息的发布、问题解答等。它使用JSP作为前端展示层技术,这使得...

    Java1.8API中文手册

    Java 8引入了Nashorn JavaScript引擎,允许Java程序直接执行JavaScript代码,实现Java和JavaScript之间的互操作。 十、Type注解 Java 1.8允许在类型上使用注解,增强了编译时和运行时的类型检查,如@NonNull用于...

    JSON入门教程

    由于其简洁和清晰的层次结构,JSON被广泛用于Web服务与客户端之间的数据交换。 在JavaScript中,JSON对象可以直接作为JavaScript对象来处理,无需额外的解析或序列化工具。例如,在提供的代码示例中,`showJSON`...

    集合转JSOn

    在Web开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。由于其简洁和高效的特点,JSON成为了前后端交互的标准数据格式之一。对于Java开发者而...

    Java语言的运用技巧

    - **ES6+新特性**:如箭头函数、Promise、async/await等,让JavaScript编写更加简洁和易读。 了解并熟练运用这些Java相关的知识点,不仅能提高开发效率,还能帮助你解决实际项目中的复杂问题。不断地学习和实践,...

    jdk1.8.rar

    7. ** Nashorn JavaScript引擎**:JDK 1.8集成了Nashorn JavaScript引擎,允许Java代码直接调用JavaScript,实现了Java与JavaScript之间的互操作。 8. **并发改进**:并发库进行了优化,如`ForkJoinPool`和`...

    java API帮助文档

    接着,集合框架是Java中处理数据结构的核心,包括`List`、`Set`和`Map`接口,以及它们的实现类如`ArrayList`、`HashSet`、`HashMap`等。这些接口和类提供了添加、删除、查找和遍历元素的方法,方便我们管理和操作...

    java JDK1.8

    8. **Nashorn JavaScript引擎**:JDK 1.8集成了Nashorn JavaScript引擎,允许Java代码直接执行JavaScript脚本,实现了Java与JavaScript之间的交互。 9. **类型推断增强**:编译器的类型推断能力在JDK 1.8中得到提升...

Global site tag (gtag.js) - Google Analytics