Discuss / JavaScript / map和object在使用上有什么差异吗?

map和object在使用上有什么差异吗?

Topic source

谢慕安

#1 Created at ... [Delete] [Delete and Lock User]

成绩的例子,用object感觉也是一样的啊

var resultObj = {
'Adam' : 67,
'Bob' : 95,
}

object通过属性(也就是名字)来访问对应的成绩,而new Map()构建了一个属于Map类的一个实例对象,这个对象内部有一个map(也就是一系列的键值对),通过对象的get方法访问这个map,从而获取成绩。所以说,两者在实现上完全不同,一个通过属性访问,一个通过方法访问map从而达到目的。另外,map支持不是字符串的key,比如数字这些,而object的key只能是字符串。

是不是说一个是自定义对象,一个是Map类的实例

Object的key不只是字符串把- - var Jke={ age:18 } typeof(Jke.age); "Number"

是我把Key搞错了!- - 新手

雨chenghe

#6 Created at ... [Delete] [Delete and Lock User]

差异就不好讲了,你应该将有什么相同的

关于成绩的例子理解:当数据量很大的时候,使用对象存储显然是不合理的,比如有的key是同名的场景下对象是不能区分的。另外,峰哥在Map第一句就提出了Map的精髓:极快的查找速度

唐伯虎点秋香那个场景记得吧

obj就像那群盖着盖头的姑娘,你要找到秋香,得一个个去掀盖头; map是姑娘们一出来没盖头,看到秋香牵着就走;

我认为可以这样理解一共有三种东西 object, dictionary, map。 和map像的其实是dictionary,他们都是数据集合。 而dictionary的key只能是字符串,而map的key支持非字符串作为key。

而object和dictionary跟map差别很大了,object只是通过dictionary初始化而已,object还有很多特性比如前章说的继承。

Memoisademo

#10 Created at ... [Delete] [Delete and Lock User]

8楼666


  • 1
  • 2

Reply