个人主页:《爱蹦跶的大A阿》
当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》
ES6带来了Map和Set两个新的数据结构 - 它们分别用于存放键值对和唯一值。Map和Set提供了更优雅和高效的存取与操作数据的方式。本文将全面解析Map和Set的用法及应用场景,助你提升JavaScript数据处理能力。
Map是ES6新增的一种键值对集合,类似于Object。区别在于:
Map提供了对键值对的存储与操作,键的顺序也得到保留。
可以通过构造函数创建Map:
let map = new Map();
Map可以接受数组做为参数,进行初始化:
new Map([
['key1', 'val1'],
['key2', 'val2'],
]);
也可以链式调用set方法初始化:
new Map()
.set('a', 1)
.set('b', 2);
Map使键值对的操作更简洁直观。后面将介绍Map的遍历等高级用法。
常用的Map遍历方式:
示例:
let map = new Map([[1, 'a'], [2, 'b']]);
for (let key of map.keys()) {
// ...
}
for (let value of map.values()) {
// ...
}
for (let [key, value] of map.entries()) {
// ...
}
map.forEach(function(value, key) {
// ...
})
WeakMap与Map的区别:
WeakMap使用场景:
Set是一种包含唯一值的集合,可以高效地对值进行操作。
Set具有以下特点:
可以通过构造函数创建Set:
let set = new Set();
也可以传入数组或者iterable对象进行初始化:
new Set([1, 2, 3]);
new Set('hello');
Set使得处理唯一值更简单。
示例:
let set = new Set([1, 2]);
for (let key of set.keys()) {
// ...
}
for (let value of set.values()) {
// ...
}
set.forEach(function(value) {
// ...
})
WeakSet与Set的区别:
使用场景:存储DOM节点,不会泄漏内存。
Map和Set大大提高了数据处理能力,了解其用法可以使代码更简洁优雅。
const map = new Map();
map.set(obj, value);
const set = new Set(arr);
[...new Set(arr)]
Map和Set拓展了数据处理能力,在数据操作方面有很多实际应用,值得我们深入学习。
要点:
Map和Set提供了更优雅高效的 JavaScript 数据处理能力,值得我们深入学习,并合理运用到实际项目中。
这就是本文的全部内容了。如果对Map和Set的使用还有任何疑问,欢迎在评论区留言讨论!