map() (es6)

map() (es6)

map()的实例是{key:value}结构,但不同于Object.

Map 结构的实例有以下属性和操作方法。
(1)size 属性
(2)set(key, value)
(3)get(key)
(4)has(key)
(5)delete(key)
(6)clear()

遍历方法
keys():返回键名的遍历器。
values():返回键值的遍历器。
entries():返回所有成员的遍历器。
forEach():遍历 Map 的所有成员。

const map = new Map([
  ['F', 'no'],
  ['T',  'yes'],
]);

for (let key of map.keys()) {
  console.log(key);
}
// "F"
// "T"

for (let value of map.values()) {
  console.log(value);
}
// "no"
// "yes"

for (let item of map.entries()) {
  console.log(item[0], item[1]);
}
// "F" "no"
// "T" "yes"

// 或者
for (let [key, value] of map.entries()) {
  console.log(key, value);
}
// "F" "no"
// "T" "yes"

// 等同于使用map.entries()
for (let [key, value] of map) {
  console.log(key, value);
}
// "F" "no"
// "T" "yes"
const map = new Map([
  [1, 'one'],
  [2, 'two'],
  [3, 'three'],
]);

[...map.keys()]
// [1, 2, 3]

[...map.values()]
// ['one', 'two', 'three']

[...map.entries()]
// [[1,'one'], [2, 'two'], [3, 'three']]

[...map]
// [[1,'one'], [2, 'two'], [3, 'three']]
04-01
### ES6 Map 使用指南 #### 基本概念 `Map` 是一种键值对的数据结构,在 JavaScript 中提供了更强大的功能,相较于传统的 `Object`,它可以接受任意类型的键,并且可以通过内置的方法方便地管理键值对[^4]。 --- #### 主要特性 1. **任意类型的键** 不同于传统对象仅限字符串或符号作为键,`Map` 支持任何类型的键,包括但不限于布尔值、数字、字符串、甚至其他对象。 2. **迭代顺序保持插入顺序** 当通过循环访问 `Map` 的键值对时,会按照它们被插入的顺序返回,这使得它非常适合用于有序集合的操作[^5]。 3. **丰富的 API 方法** - `.set(key, value)`:设置键值对。 - `.get(key)`:获取指定键对应的值。 - `.has(key)`:判断某个键是否存在。 - `.delete(key)`:删除指定键及其对应值。 - `.clear()`:清除所有键值对。 - `.size`:返回当前存储的键值对数量。 --- #### 示例代码 以下是几个常见的使用案例: ```javascript // 创建一个新的 Map 对象 const myMap = new Map(); // 设置键值对 myMap.set('name', 'Alice'); myMap.set(1, 'one'); myMap.set(true, 'boolean'); console.log(myMap.size); // 输出 3 // 获取特定键的值 console.log(myMap.get('name')); // 输出 "Alice" console.log(myMap.get(1)); // 输出 "one" // 判断键是否存在 console.log(myMap.has('name')); // 输出 true console.log(myMap.has(false)); // 输出 false // 删除键值对 myMap.delete('name'); console.log(myMap.size); // 输出 2 // 清空整个 Map myMap.clear(); console.log(myMap.size); // 输出 0 ``` --- #### 高级用法:初始化与遍历 可以利用数组来批量初始化 `Map`,并通过多种方式对其进行遍历。 ```javascript // 初始化 Map const users = new Map([ ['John', 'Admin'], ['Jane', 'Editor'] ]); // 遍历 Map 键值对 for (const [key, value] of users) { console.log(`${key} 的角色是 ${value}`); } // 或者使用 forEach 方法 users.forEach((role, name) => { console.log(`${name} 的角色是 ${role}`); }); ``` 上述代码展示了如何通过二维数组一次性定义多个键值对,并分别采用 `for...of` 循环和 `forEach` 方法完成遍历操作。 --- #### 性能优势 相比于普通的对象字面量 `{}`, `Map` 提供了更高的性能表现特别是在频繁增删改查的情况下。这是因为其内部实现了优化过的哈希表机制。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值