ES6引入了两个新的数据结构-映射和集合。
Maps
映射是键值对的有序集合。map类似于对象。但是,map和对象之间存在一些差异。这些在下面列出-
Sr.No | Object | Map |
---|---|---|
1 | 键不能是对象类型 | 键可以是任何类型 |
2 | 键未排序 | 键排序 |
3 | 不可迭代 | 可迭代 |
创建map语法:let map = new Map([iterable]) let map = new Map()
map操作的常见方法-
Sr.No | Object & Map |
---|---|
1 | set(key,value) 向map对象中添加键和值 |
2 | get(key) 通过键获取值,如果键匹配则返回值 |
3 | has(key) 如果存在具有指定键的元素,则返回true;否则返回true。否则返回假 |
4 | keys() 返回一个迭代器,该迭代器包含map对象中每个元素的键 |
5 | values() 返回一个迭代器,该迭代器包含map对象中每个元素的值 |
6 | entries() 返回一个迭代器,该迭代器包含Map中每个元素的键值对 |
7 | delete(key) 从Map对象移除指定的元素 |
Set
集合是唯一值的无序集合。该数据结构可以包含基本类型和对象类型的值。
创建一个集合语法:new Set([iterable]) new Set()
迭代集合
我们可以使用forEach和for..of循环遍历Set
<script>let names= new Set(['A','B','C','D']);//iterate using forEachconsole.log('forEach')names.forEach(n=>console.log(n))console.log('for of..')//iterate using for..offor(let n of names){console.log(n)} </script>
以下方法可用于操作集合-
Sr.No | Object & Map |
---|---|
1 | add(element) 将元素添加到集合中 |
2 | has(element) 如果找到元素,则返回true;否则,返回true。否则返回假 |
3 | delete(element) 从集合中删除指定元素 |
4 | clear() 清除集合中的所有元素 |