今天看文章的时候,偶然看到代码中的映射用的是Map,想想自己一直用的是对象做映射。所以就想深入了解一哈。
-
Map:
const map = new Map([["1", "planA"], ["2", "planB"], ["3", "planC"], ["4", "planB"]]); map.get("1"); // 返回 "planA"-
特点:
Map是一种数据结构,用于存储键值对。- 键可以是任何数据类型,包括对象、函数等。
- 保持键的顺序,并且每个键只能在
Map中出现一次。 - 提供了丰富的迭代方法,方便对键值对进行操作。
-
-
对象字面量 (obj):
const obj = { "1": "planA", "2": "planB", "3": "planC", "4": "planD", }; obj["1"]; // 返回 "planA"-
特点:
- 对象是 JavaScript 中的一种基本数据类型,用于存储属性和方法。
- 键只能是字符串或者可以被转换为字符串的值。
- 不保持键的顺序。
- 不提供直接的迭代方法,但可以通过循环遍历属性来实现类似的效果。
-
区别和选择:
- 键的类型: 如果键的类型需要是多样化的,而不仅仅是字符串,且需要保持键的顺序,那么选择
Map更为合适。 - 顺序的保持: 如果需要确保键值对的顺序,
Map是更好的选择,因为它会按照插入的顺序保持键的顺序。 - 方法和灵活性: 如果需要更多的方法和灵活性来处理键值对,例如
size属性、clear方法、entries方法等,那么Map是更为强大的数据结构。 - 简单性: 对于简单的键值对映射,如果只需要字符串作为键,对象字面量的语法更简单直观。
虽然ifelse跟switch也能做为一种方式来进行映射,但...