ES6 引入了两种新的数据结构:Set 和 Map。它们分别用于存储唯一值的集合和键值对的集合。

Set(集合):

Set 是一种存储唯一值的集合,不允许重复。

创建 Set:
let mySet = new Set();

mySet.add(1);
mySet.add(2);
mySet.add(3);

console.log(mySet); // 输出:Set { 1, 2, 3 }

方法和操作:

  •  add(value): 添加一个值到集合。

  •  delete(value): 从集合中删除一个值。

  •  has(value): 判断集合中是否包含某个值。

  •  clear(): 清空集合。

  •  size: 返回集合中元素的个数。

mySet.add(4);
console.log(mySet.has(2)); // 输出:true
mySet.delete(2);
console.log(mySet);         // 输出:Set { 1, 3, 4 }
console.log(mySet.size);    // 输出:3
mySet.clear();
console.log(mySet);         // 输出:Set {}

Map(映射):

Map 是一种存储键值对的集合,键可以是任意数据类型。

创建 Map:
let myMap = new Map();

myMap.set('name', 'John');
myMap.set('age', 25);

console.log(myMap); // 输出:Map { 'name' => 'John', 'age' => 25 }

方法和操作:

  •  set(key, value): 设置键值对。

  •  get(key): 获取指定键的值。

  •  delete(key): 删除指定键值对。

  •  has(key): 判断是否包含指定键。

  •  clear(): 清空 Map。

  •  size: 返回 Map 中键值对的个数。

myMap.set('city', 'New York');
console.log(myMap.get('name')); // 输出:John
myMap.delete('age');
console.log(myMap);              // 输出:Map { 'name' => 'John', 'city' => 'New York' }
console.log(myMap.has('age'));   // 输出:false
console.log(myMap.size);         // 输出:2
myMap.clear();
console.log(myMap);              // 输出:Map {}

遍历 Set 和 Map:

Set 和 Map 都支持 forEach 方法用于遍历元素。

遍历 Set:
mySet.forEach(value => console.log(value));
// 输出:
// 1
// 3
// 4

遍历 Map:
myMap.forEach((value, key) => console.log(`${key}: ${value}`));
// 输出:
// name: John
// city: New York

Set 和 Map 提供了一种更灵活的数据结构,适用于需要存储唯一值集合或键值对集合的场景。


转载请注明出处:http://www.zyzy.cn/article/detail/4673/ES6