iis部署网站项目,腾宁网络做网站,优化wordpress评论,大淘客联盟做网站发现宝藏
前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。【宝藏入口】。 Map 是 ES6 中引入的一种新的数据结构#xff0c;它类似于对象#xff08;Object#xff09;#xff0c;但与对象相比#…发现宝藏
前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。【宝藏入口】。 Map 是 ES6 中引入的一种新的数据结构它类似于对象Object但与对象相比Map 提供了更多的灵活性和功能。Map 用来存储键值对key-value pairs并且它的键可以是任何类型而不仅仅是字符串或符号。相较于普通对象Map 在很多方面提供了更好的性能和更方便的API。
基本概念
Map 是一种集合collection其中每个元素都由一个键key和一个值value组成。在 Map 中键和值都是任意类型的比如对象、函数、数组等。与普通对象不同Map 中的键值对是有序的即插入的顺序会被保存下来。
创建 Map 实例
let myMap new Map(); // 创建一个空的 Map 实例你也可以在创建时直接传入一个二维数组数组的每个元素是一个由键值对组成的数组来初始化 Map
let myMap new Map([[name, Alice],[age, 25],[job, developer]
]);常用方法
1. .set(key, value)
set 方法用于向 Map 添加新的键值对。如果键已经存在则会更新该键对应的值。
let map new Map();
map.set(name, Alice);
map.set(age, 25);
map.set(job, developer);
console.log(map);
// Map(3) { name Alice, age 25, job developer }2. .get(key)
get 方法用于根据键获取对应的值。如果该键不存在返回 undefined。
console.log(map.get(name)); // 输出 Alice
console.log(map.get(address)); // 输出 undefined3. .has(key)
has 方法检查 Map 中是否存在某个键返回 true 或 false。
console.log(map.has(name)); // 输出 true
console.log(map.has(address)); // 输出 false4. .delete(key)
delete 方法用于删除 Map 中指定键值对。如果该键存在返回 true否则返回 false。
map.delete(age);
console.log(map.has(age)); // 输出 false5. .clear()
clear 方法用于删除 Map 中的所有键值对。
map.clear();
console.log(map.size); // 输出 06. .size
size 是一个属性用来获取 Map 中键值对的数量。
let map new Map();
map.set(name, Alice);
map.set(age, 25);
console.log(map.size); // 输出 27. .keys(), .values(), .entries()
这些方法分别返回 Map 中所有键、所有值、所有键值对的迭代器。
.keys() 返回一个迭代器包含 Map 中的所有键。.values() 返回一个迭代器包含 Map 中的所有值。.entries() 返回一个迭代器包含 Map 中的所有键值对。
let map new Map([[name, Alice],[age, 25]
]);// 获取所有键
for (let key of map.keys()) {console.log(key); // 输出 name, age
}// 获取所有值
for (let value of map.values()) {console.log(value); // 输出 Alice, 25
}// 获取所有键值对
for (let [key, value] of map.entries()) {console.log(key, value); // 输出 name Alice, age 25
}8. .forEach(callback)
forEach 方法用于遍历 Map 中的所有键值对参数是一个回调函数该函数接收三个参数value、key、map。
let map new Map([[name, Alice],[age, 25]
]);map.forEach((value, key) {console.log(key, value);
});
// 输出:
// name Alice
// age 25特点总结
键可以是任意类型Map 的键可以是任何数据类型包括对象、数组、函数等。插入顺序Map 会保持键值对的插入顺序可以通过 .keys()、.values()、.entries() 获取到有序的迭代结果。性能优势相比于对象Map 在频繁的增删查改操作中通常表现得更好因为 Map 是为存储键值对而优化的而对象更多是为了属性访问而设计。大小和删除Map 具有 .size 属性可以随时查询元素的数量并且可以通过 .delete() 删除单个元素或者使用 .clear() 删除所有元素。更方便的 APIMap 提供了许多方便的内建方法能够使得对键值对的操作更加灵活和高效。
与对象的区别
键类型对象的键只能是字符串或符号而 Map 的键可以是任意类型。顺序Map 会保留元素的插入顺序而对象的键并不保证有序。性能Map 的性能通常更优尤其是在频繁操作键值对时。
使用场景
Map 适合用于以下情况
需要频繁对键值对进行增删改查操作。键的类型不止是字符串或符号。需要保持插入顺序或者需要知道元素的个数。