锁定老帖子 主题:一个简单的JavaScript Map
精华帖 (0) :: 良好帖 (0) :: 新手帖 (22) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2008-06-13
问题复杂化了。
HASH全称是“Hash House Harriers”(简称“Hash"、“HHH”,或“ 3H” ),是一项世界性的休闲活动,起源于1938年马来西亚的吉隆坡,如今在全世界184个国家几千个城市中都有开展,包括中国的北京、广州、上海、深圳、乌鲁木齐等城市。 |
|
返回顶楼 | |
发表时间:2008-06-13
搜了,看了。本质上不就是key和value的对应么。
map这个东西还是语言本身支持才行啊。 |
|
返回顶楼 | |
发表时间:2008-06-13
icewubin 写道 soni 写道 我知道我很菜,没看懂。
不过我想问几个问题: 1、实现这个map有啥用啊?实际项目中用于何处? 2、这个map里有什么功能是array和object无法提供的? 3、我不知道map、hashmap都是啥东西。感觉不就是提供了一些功能的容器么。弄出这么个东西来,速度不是要比直接用array和object慢么? 哈,你如果知道hash的意义,就不会说仅仅是提供了一些功能的容器了,建议你先补补hash的基础知识和原理。 不就是google里搜一下么,别偷懒,几分钟就能看出个大概了。 Yes 数据结构这种东西 不用当然也能写程序 只是合不合适的问题 |
|
返回顶楼 | |
发表时间:2008-06-14
csf177 写道 icewubin 写道 soni 写道 我知道我很菜,没看懂。
不过我想问几个问题: 1、实现这个map有啥用啊?实际项目中用于何处? 2、这个map里有什么功能是array和object无法提供的? 3、我不知道map、hashmap都是啥东西。感觉不就是提供了一些功能的容器么。弄出这么个东西来,速度不是要比直接用array和object慢么? 哈,你如果知道hash的意义,就不会说仅仅是提供了一些功能的容器了,建议你先补补hash的基础知识和原理。 不就是google里搜一下么,别偷懒,几分钟就能看出个大概了。 Yes 数据结构这种东西 不用当然也能写程序 只是合不合适的问题 我只是说了map是通用结构,不要动不动扯上Java中默认实现的HashMap,Java中的HashHap是利用Hash原理进行高速定位的。 不要很轻描淡写的说数据结构怎么怎么,基础知识,很多人都没掌握,高谈阔论的时候,概念混淆了都不知道。 |
|
返回顶楼 | |
发表时间:2008-06-14
icewubin 写道 我只是说了map是通用结构,不要动不动扯上Java中默认实现的HashMap,Java中的HashHap是利用Hash原理进行高速定位的。 不要很轻描淡写的说数据结构怎么怎么,基础知识,很多人都没掌握,高谈阔论的时候,概念混淆了都不知道。 第一点 扯上Java中默认实现的HashMap可不是我的事,我根本就不用Java 第二点 难道提到数据结构还要先烧香不成? map在计算机领域跟associative array是一回事 不过Map多数时候都表示STL里的那种Map 至于您说的所谓通用结构 我可不知道是什么意思 建议您用计算机术语 这样比较准确 也易于理解 记得您老有看帖不仔细 还不知道别人说什么就开始回帖的习惯来的 |
|
返回顶楼 | |
发表时间:2008-06-14
csf178 写道 第一点 扯上Java中默认实现的HashMap可不是我的事,我根本就不用Java 第二点 难道提到数据结构还要先烧香不成? map在计算机领域跟associative array是一回事 不过Map多数时候都表示STL里的那种Map 至于您说的所谓通用结构 我可不知道是什么意思 建议您用计算机术语 这样比较准确 也易于理解 记得您老有看帖不仔细 还不知道别人说什么就开始回帖的习惯来的 1.我提到Java的HashMap只是给个参考,很多语言都会有HashMap,意思是指如果要实现HashMap请参考Java的HashMap实现算法,或者其他语言的实现。 Java是从楼主的注释中看出来的。 2.你说的“烧香”是什么意思呢? 我只是指出部分网友提到这次讨论的话题时用词不准确,不少关于HashMap的说法都是有问题的,但是言语间总有人会把Map和HashMap一起来说。 我怎么觉得是你没有仔细看我的帖和楼主的帖呢。 我是说关于Map这种数据结构大家的说法和相关的论点基本都没问题,但是不要和HashMap一起说。 我说的通用,就是希望他们不要在把Map和HashMap搞在一起,就是泛泛指Map这种数据结构,没有什么特殊意思,也不需要你理解。 我重点在说HashMap的问题,你怎么老和我讨论Map呢,我又不是否定Map的相关说法。 Map有很多种实现方式,HashMap只是其中的一种。 举个例子,比如讨论Map的速度时肯定会深入到具体的实现机制,HashMap就是读非常高速的结构。 当然不同的实现会让不同的Map在不同的应用场景表现出来的性能不一样,但是不能泛泛的说什么Map的性能相对的不好等等。 |
|
返回顶楼 | |
发表时间:2008-06-14
楼主的Map代码是不是有bug?
/** * 获取键值数组(类似Java的entrySet()) * @return 键值对象{key,value}的数组 */ this.entrys = function() { var len = this.keys.length; var entrys = new Array(len); for (var i = 0; i < len; i++) { entrys[i] = { key : this.keys[i], value : this.data[i]//有bug? }; } return entrys; }; 其中有一句是不是应该是: value : this.data[this.keys[i]] |
|
返回顶楼 | |
发表时间:2008-06-14
icewubin 写道 csf178 写道 第一点 扯上Java中默认实现的HashMap可不是我的事,我根本就不用Java 第二点 难道提到数据结构还要先烧香不成? map在计算机领域跟associative array是一回事 不过Map多数时候都表示STL里的那种Map 至于您说的所谓通用结构 我可不知道是什么意思 建议您用计算机术语 这样比较准确 也易于理解 记得您老有看帖不仔细 还不知道别人说什么就开始回帖的习惯来的 1.我提到Java的HashMap只是给个参考,很多语言都会有HashMap,意思是指如果要实现HashMap请参考Java的HashMap实现算法,或者其他语言的实现。 Java是从楼主的注释中看出来的。 2.你说的“烧香”是什么意思呢? 我只是指出部分网友提到这次讨论的话题时用词不准确,不少关于HashMap的说法都是有问题的,但是言语间总有人会把Map和HashMap一起来说。 我怎么觉得是你没有仔细看我的帖和楼主的帖呢。 我是说关于Map这种数据结构大家的说法和相关的论点基本都没问题,但是不要和HashMap一起说。 我说的通用,就是希望他们不要在把Map和HashMap搞在一起,就是泛泛指Map这种数据结构,没有什么特殊意思,也不需要你理解。 我重点在说HashMap的问题,你怎么老和我讨论Map呢,我又不是否定Map的相关说法。 Map有很多种实现方式,HashMap只是其中的一种。 举个例子,比如讨论Map的速度时肯定会深入到具体的实现机制,HashMap就是读非常高速的结构。 当然不同的实现会让不同的Map在不同的应用场景表现出来的性能不一样,但是不能泛泛的说什么Map的性能相对的不好等等。 这样啊 有些误解 烧香是针对你说的轻描淡写地说数据解构说的 准确的说Map是个抽象数据类型 但是跟链表之类的不一样 它的数据结构不是确定的 |
|
返回顶楼 | |
发表时间:2008-06-17
要写Map的话完全没必要这样做,只要自己写个原型就可以了,干嘛还要用Array
这样你的遍历就麻烦的要死了 function Map(){ }; Map.prototype.put = function(key,value){ this[key] = value; } 类似这样就可以了 |
|
返回顶楼 | |
发表时间:2008-06-17
附加一句,你那样写的话和JS的Array对象基本没啥区别
|
|
返回顶楼 | |