说明
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>