「这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战」。
今天总结一下ES6新增类型 -- map。map主要用于实现"键/值"形式的存储。
基本API
API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。
初始化
给构造函数传入可迭代对象(允许for...of循环),必须包含的是键值对数组。对象中的每个 键值对都会按照迭代顺序插入到新映射实例。这里可以理解为,object虽然也是键值对,但是键值对在前在后没有区别,但是map的键值对是严格按照顺序排列。
const m = new Map([
["key1", "value1"],
["key2", "value2"],
["key3", "value3"],
])
console.log(m);
// {'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3'}
set()
作用:添加键值对
const names = new Map();
names.set("配音演员", "林予曦");
names.set("配音演员1", "倒霉死勒");
console.log(names);
可以连接创建实例和set方法的初始化:
const names = new Map().set("配音演员", "倒霉死勒");
console.log(names);
get()
作用:查询键对应的值 => 返回是值
console.log(names.get("配音演员"));
has()
作用:查询键参数是否有对应的值 => 返回是的布尔值(true或false)
console.log(names.has("配音演员")); // true
console.log(names.has("配音演员2")); // false
delete()
作用:只删除指定的键值对
names.delete("配音演员");
console.log(names);
clear()
作用:清除实例中的所有键值对
names.clear();
console.log(names);
顺序和迭代
map严格按照键值对的插入顺序来排列元素,因此可以根据插入的顺序来执行迭代操作。
for (let item of names.entries()) {
console.log(item);
}
map映射实例会提供一个迭代器(iterator),以插入顺序生成键值对形式的数组。通过entries()方法获得迭代器。