You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
const map2 = new Map([['name','james'],['age',18],['profession','software']]);
console.log(map2.get('name')); // james
console.log(map2.get('age'));// 18
操作
1.size 获取map的大小长度
const map2 = new Map([['name','james'],['age',18],['profession','software']]);
console.log(map2.size); // 3
2.设置键值对,键可以是各种类型,包括undefined,function等
const map4 = new Map();
map4.set('k1',5);
map4.set(222,'哈哈哈');
map4.set(undefined,'ggggg');
const fun = function(){
console.log('hello 我是方法');
}
map4.set(fun,'fun');
console.log('map4 size :%s',map4.size); // 4
console.log('undefined value :%s',map4.get(undefined)); //ggggg
console.log('fun value:%s',map4.get(fun)); //fun
特性
ES6提供了”值-值“对的数据结构,键名不仅可以是字符串,也可以是对象。它是一个更完善的Hash结构。
1.键值对,键可以是对象
2.Map可以接受数组作为参数,数组成员还是一个数组,其中有两个元素,一个表示键一个表示值。
操作
1.size 获取map的大小长度
2.设置键值对,键可以是各种类型,包括undefined,function等
3.也可对set进行链式调用。
4.get 获取键对应的值
6.delete 删除键值对
7.clear 删除map中所有的键值对
遍历
1.keys() 遍历map的所有key
2.values() 遍历map的所有value
3.entries() 遍历map的所有键值对
方法一:
方法二:
4.forEach 遍历map所有的键值对
forEach知识拓展:
forEach有第二个参数,可以用来绑定this。
这样有个好处,map的存储的数据和业务处理对象可以分离,业务处理对象可以尽可能的按职责分割的明确符合SRP原则。
和其他结构的互转
1.Map To Array
使用扩展运算符(...) 可将map内的元素都展开为数组
结合数组的map方法、filter方法,可以实现 Map 的遍历和过滤(Map 本身没有map和filter方法)。
2.Array To Map
使用数组来构造一个map
3.Map To Object
写一个转换函数,遍历map的所有元素,将元素的键和值作为对象属性名和值写入Object中。
4.Object To Map
同理,再写一个转换函数遍历Object,将属性名和值作为键值对写入Map。
注意点:
object 不能实现 for of 迭代循环,会报'x' is not iterable的TypeError.
这个值作为 for…of 的表达式右值,或者作为一个函数的参数,如 Promise.all 或者 TypedArray.from, 不是一个 可迭代对象. 一个可迭代对象可以是一个内置可迭代类型,如Array, String 或 Map, 一个 generator 生成结果, 或者一个实现了可迭代协议的对象.
方案一:
做为替代你必须使用 Object.keys
或 Object.entries 来迭代对象的属性或属性值.
5.set To map
将创建好的set在创建map的构造函数时,直接传入
6.map To set
遍历map中的键值,然后add到set中
7.Map 转为 JSON
Map 转为 JSON 要区分两种情况。一种情况是,Map 的键名都是字符串,这时可以选择转为对象 JSON。
The text was updated successfully, but these errors were encountered: