Map与Object的区别是什么

目前了解到的区别有

  • Object的键只能是字符串或者Symbol,Map的键值可以是任意值
  • Map的键值对数量可以通过size属性获取,Object则需要通过Object.keys(obj).length类似的方式获取

以上两点已经过证实,
但还看到其他的

  • Map的键值是有序的,而对象不是
  • Object有自己的原型,原型链上的键名可能与对象的键名产生冲突。

想问下这两点该怎么证实。求助各位大佬

回答

有序的问题……反正两个遍历结果是一样的,没见排序

const entries = [

["def", 1],

["abc", 2],

["cfg", 3]

]

Array.from(new Map(entries))

.forEach(([key, value]) => console.log(`${key} = ${value}`));

console.log("-----------------------------");

Object

.entries(entries.reduce((o, [key, value]) => {

o[key] = value;

return o;

}, {}))

.forEach(([key, value]) => console.log(`${key} = ${value}`));

原型的问题,截个图给你吧

image.png

以上是 Map与Object的区别是什么 的全部内容, 来源链接: utcz.com/a/36513.html

回到顶部