ES6 Map数据结构

    技术2022-07-11  95

    一、Map的基本用法 JavaScript对象本质上是键值对的集合,但是传统上只能用字符串当作键,在使用上会有很大的限制。 ES6提供了Map数据结构,类似于对象,也是键值对的集合,但是键不止能用字符串,各种类型的值都可以当作键,并且键不能重复。

    创建Map

    const map = new Map([ ["x",123], ["y",456], ["z",789] ]);

    Map与Set一样都是构造函数,使用new关键字创建实例。 Map传递的参数一般是数组,事实上,不仅仅是数组,任何具有 Iterator 接口、且每个成员都是一个双元素的数组的数据结构都可以当作Map构造函数的参数。

    const map = new Map([ ["x",123], ["y",456], ["z",789] ]); map.set("z","123");

    上面代码中对键名为’z’的键进行了多次赋值,所以后面的值将覆盖前面的值。

    二、实例的属性和操作方法 size size属性返回 Map 结构的成员总数。

    const map = new Map([ ["x",123], ["y",456], ["z",789] ]); map.size;//3

    set() set方法设置键名key对应的键值为value,然后返回整个 Map 结构。如果key已经有值,则键值会被更新,否则就新生成该键。 set方法返回当前的Map对象。

    const map = new Map([ ["x",123], ["y",456], ["z",789] ]); map.set("k","852"); map.set("z","741");//键已经有值,重新赋值

    get() get方法读取key对应的键值,如果找不到key,返回undefined。

    const map = new Map([ ["x",123], ["y",456], ["z",789] ]); map.get("z");//789 map.get("k");//undefined

    has() has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中。

    const map = new Map([ ["x",123], ["y",456], ["z",789] ]); map.has("z");//true map.has("k");//false

    delete() delete方法删除某个键,返回true。如果删除失败,返回false。

    const map = new Map([ ["x",123], ["y",456], ["z",789] ]); map.delete("x");//true map.delete("a");//false

    clear() clear方法清除所有成员,没有返回值。

    const map = new Map([ ["x",123], ["y",456], ["z",789] ]); map.clear(); map.size;//0

    forEach() 遍历 Map 的所有成员。forEach方法还可以接受第二个参数,用来绑定this。

    const map = new Map([ ["x",123], ["y",456], ["z",789] ]); map.forEach((value,key,map) => { console.log(value,key,map) // value : 值 // key : 键 // map 对象本身 });
    Processed: 0.011, SQL: 9