ES6-map数据类型
2019-01-06 本文已影响0人
吴高亮
JS中;对象都是键值对的集合;都是字符串作为数据的属性;Object提供了'字符串-值';但是Map提供了'值-值';
const m=new Map();
const o={p:'hello world'};
m.set(o,'content');
m.get(o);//content;
m.has(o);//true;
m.delete(o);//ture;
m.has(0);//false;
上面使用set将o[一个对象]设置为一个键;使用get方法取出这个键;使用delete删除后;使用has判定是否含有这个值;
接下来看Map作为构造函数;进行Map数据格式的构建;
const m=new Map([
['name','Setmain'],
['title','map']
]);
m.size 2;
m.has('name');//true;
m.get('name');//Setmain;
m.get('title');//map;
const map = new Map();
map
.set(1, 'aaa')
.set(1, 'bbb');
map.get(1) // "bbb"
let map = new Map();
map.set(-0, 123);
map.get(+0) // 123
map.set(true, 1);
map.set('true', 2);
map.get(true) // 1
map.set(undefined, 3);
map.set(null, 4);
map.get(undefined) // 3
map.set(NaN, 123);
map.get(NaN) // 123
实例和操作方法;
- size;返回Map数据中的成员总数;
const map = new Map();
map.set('foo', true);
map.set('bar', false);
map.size // 2
- set;
set方法设置键名key对应的键值为value,然后返回整个 Map 结构。如果key已经有值,则键值会被更新,否则就新生成该键。
const m = new Map();
m.set('edition', 6) // 键是字符串
m.set(262, 'standard') // 键是数值
m.set(undefined, 'nah') // 键是 undefined
- get方法读取key对应的键值,如果找不到key,返回undefined。
const m = new Map();
const hello = function() {console.log('hello');};
m.set(hello, 'Hello ES6!') // 键是函数
m.get(hello) // Hello ES6!
- has(key)检查是否有这个值;
const m = new Map();
m.set('edition', 6);
m.set(262, 'standard');
m.set(undefined, 'nah');
m.has('edition') // true
m.has('years') // false
m.has(262) // true
m.has(undefined) // true
- delete方法删除某个键,返回true。如果删除失败,返回false
const m = new Map();
m.set(undefined, 'nah');
m.has(undefined) // true
m.delete(undefined)
m.has(undefined) // false
- clear();方法 清除所有属性;
let m=new Map();
m.set(1,true);
m.set(2,false);
m.size//2;
m.clear();//清除;
m.size//0;