JavaScript Map 对象使用指南:创建、操作与对比 Object

作者:异步漫步时间:2026-10-26 11:01:55浏览:186

本文详细介绍JavaScript中Map对象的核心用法,涵盖创建Map、设置键值对、获取与删除指定元素以及遍历操作。同时深入解析Map与普通Object在键类型、插入顺序、尺寸获取及原型链等方面的关键区别,帮助开发者根据场景选择合适的数据结构。

JS中的Map对象

1.js创建map对象

var map = new Map();

2.将键值对放入map对象

map.set("key",value)
map.set("key1",value1)
map.set("key2",value2)

3.根据key获取map值

map.get(key)

4.删除map指定对象

delete map[key]

或

map.delete(key)

5.循环遍历map

map.forEach(function(key){
  console.log("key",key)  //输出的是map中的value值
})

JS中Map和普通对象

Map对象

Map 对象用于存储键值对,其中任何类型的值(包括对象、数组、字符串、数值、布尔值、null 或 undefined)均可作为键或值。

Map 对象在迭代时遵循元素的插入顺序,使用 for...of 循环遍历会返回形式为 [key, value] 的数组。

Object对象

Object 构造函数用于创建对象包装器,其内容为由冒号分隔的名称(字符串)与值(任意值)组成的键值对。

Objects 和 maps 的比较

Objects 和 Maps 均支持按键存取值、删除键以及检测键是否绑定值,因此过去常将对象当作 Maps 使用。但在特定场景下,使用 Map 是更优选择,主要区别如下:

MapObject
意外的键Map 默认情况不包含任何键。只包含显式插入的键。一个 Object 有一个原型, 原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。注意: 虽然 ES5 开始可以用 Object.create(null) 来创建一个没有原型的对象,但是这种用法不太常见。
键的类型一个 Map的键可以是任意值,包括函数、对象或任意基本类型。一个Object 的键必须是一个 String 或是Symbol。
键的顺序Map 中的 key 是有序的。因此,当迭代的时候,一个 Map 对象以插入的顺序返回键值。一个 Object 的键是无序的注意:自ECMAScript 2015规范以来,对象确实保留了字符串和Symbol键的创建顺序; 因此,在只有字符串键的对象上进行迭代将按插入顺序产生键。
SizeMap 的键值对个数可以轻易地通过size 属性获取Object 的键值对个数只能手动计算
迭代Map 是 iterable 的,所以可以直接被迭代。迭代一个Object需要以某种方式获取它的键然后才能迭代。
性能在频繁增删键值对的场景下表现更好。在频繁添加和删除键值对的场景下未作出优化。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

作者最新文章