ES6新特性:Set和Map
Posted 流楚丶格念
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6新特性:Set和Map相关的知识,希望对你有一定的参考价值。
文章目录
说明
ES6提供了Set和Map的数据结构。
Set
Set,本质与数组类似。不同在于Set中只能保存不同元素,如果元素相同会被忽略。和java中的 Set集合非常相似。\\
Set声明
Set构造函数可以接收一个数组或空
let set = new Set();
set.add(1); // [1]
set.add(2);
set.add(3);
set.forEach(value =>
console.log(value); //输出: 1 2 3
)
也可以接收数组
let set2 = new Set([2, 3, 4, 5, 5]); // 得到[2,3,4,5]
set2.forEach(value =>
console.log(value); //输出: 2 3 4 5
)
Set常用方法
set.add(1); // 添加
set.delete(2); // 删除指定元素
set.has(2); // 判断是否存在
set.forEach(function() ) //遍历元素
set.size; // 元素个数。是属性,不是方法。
set.clear(); // 清空
Map
Map,本质是与Object类似的结构。不同在于,Object强制规定key只能是字符串。而Map结构的key可以是任意对象。
即: object是 < string,object>
集合map是< object,object>
集合
Map声明
map可以接收一个数组,数组中的元素是键值对数组
const map = new Map([
['key1', 'value1'],
['key2', 'value2'],
])
或者接收一个set
const set = new Set([
['key1', 'value1'],
['key2', 'value2'],
])
const map2 = new Map(set)
或者其它map
const map3 = new Map(map);
Map常用方法
map.set(key, value); // 添加
map.clear(); // 清空
map.delete(key); // 删除指定元素
map.has(key); // 判断是否存在
map.forEach(function(key, value) ) // 遍历元素
map.size; // 元素个数。是属性,不是方法
map.values() // 获取value的迭代器
map.keys() // 获取key的迭代器
map.entries() // 获取entry的迭代器
Map遍历
//用法:
for (let key of map.keys())
console.log(key);
//或:
console.log(...map.values()); // 通过扩展运算符进行展开
代码案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ES6新特性学习-(11)-set和map</title>
</head>
<body>
<h2>ES6提供了Set和Map的数据结构。
Set,本质与数组类似。不同在于Set中只能保存不同元素,如果元素相同会被忽略。和java中的 Set集合非常相似。
</h2>
<h2>map,本质是与Object类似的结构。不同在于, Object强制规定key只能是字符串。而Map结构 的key可以是任意对
象。即: object是 < string,object>集合map是< object,object>集合
</h2>
<script>
// Set构造函数可以接收一个数组或空
let set = new Set();
set.add(1); // [1]
set.add(2);
set.add(3);
set.forEach(value =>
console.log(value); //输出: 1 2 3
)
// 接收数组
let set2 = new Set([2, 3, 4, 5, 5]); // 得到[2,3,4,5]
set2.forEach(value =>
console.log(value); //输出: 2 3 4 5
)
//常用方法
set.add(1); // 添加
set.delete(2); // 删除指定元素
set.has(2); // 判断是否存在
set.forEach(function() ) //遍历元素
set.size; // 元素个数。是属性,不是方法。
set.clear(); // 清空
// map接收一个数组,数组中的元素是键值对数组
const map = new Map([
['key1', 'value1'],
['key2', 'value2'],
])
// 或者接收一个set
const set = new Set([
['key1', 'value1'],
['key2', 'value2'],
])
const map2 = new Map(set)
// 或者其它map
const map3 = new Map(map);
//map常用方法
map.set(key, value); // 添加
map.clear(); // 清空
map.delete(key); // 删除指定元素
map.has(key); // 判断是否存在
map.forEach(function(key, value) ) //遍历元素
map.size; // 元素个数。是属性,不是方法
map.values() //获取value的迭代器
map.keys() //获取key的迭代器
map.entries() //获取entry的迭代器
//用法:
for (let key of map.keys())
console.log(key);
//或:
console.log(...map.values()); //通过扩展运算符进行展开
</script>
</body>
</html>
以上是关于ES6新特性:Set和Map的主要内容,如果未能解决你的问题,请参考以下文章