EcmaScript6的map结构
2019-01-15 本文已影响11人
LeeYaMaster
我们所常见的结构,比如说对象,都是key:value的形式,key必须是字符,不能是对象,value可以是所有类型,比如{name:"zhangsan",age:18},而map不同的点,在于,map的key也可以是对象,甚至是函数,比如:
const m = new Map();
const hello = function() {console.log('hello');};
m.set(hello, 'Hello ES6!') // 键是函数
m.get(hello) // Hello ES6!
const m = new Map();
const hello = {name:"zhangsan",age:18};
m.set(hello, 'Hello ES6!') // 键是函数
m.get(hello) // Hello ES6!
上面的代码,hello是一个函数,也可以是对象,却也可以当成key来使用,这就是map不同的地方。
let map= new Map();
let keyString = "This is string",
let keyObj = {name:"zhangsan",age:18},
let keyFun = function () {console.log('helloworld')};
//用set方法,给map添加值
map.set(keyString, "字符串").set(keyObj, "对象").set(keyFun, "函数");//set方法可以链式调用
console.log(map);
控制台输出图
如图,以上便是map结构的用法。