美文网首页
ES6 Map结构数据

ES6 Map结构数据

作者: 祝名 | 来源:发表于2018-12-17 19:21 被阅读0次

    一.Map结构数据

    1. 传统对象键名必须为字符串

    let obj = {a:1, 666:2}; console.log(666);-->报错

    2.map结构数据是一种“值-值”对应关系

    let m = new Map();
    m.set(123,'abc');
    console.log(m.get(123));
    --> abc
    

    二.Map结构数据初始化和方法

    1. 可直接传入键值对二维数组

    2. get()-获得数据

    let m = new Map([
        [123,'abc'],
        ['a',{x:1,y:2}],
        [3>1,666]
    ]);
    获得数据
    console.log(m.get(true));
    -->返回666
    

    3. has()-查找有没有字符串对应的值

    接上面例子

    m.has('a');-->true
    

    4. delete()-删除

    m.delete(123);
    

    三.map结构对象键名特点

    1. 传址特点--对象作为键名,传输的是地址,所以下例中的两个{x:1}虽然长相一样,但实际值不同(存储在堆内存的两个位置)

    let m = new Map([
        [123,'abc'],
        [{x:1},'cdf'],
    ]);
    console.log(m.get({x:1}));
    -->undefined
    

    可以修改成下面形式

    let obj = {x:1};
    let m = new Map([
        [123,'abc'],
        [obj,'cdf'],
    ]);
    console.log(m.get(obj));
    -->cdf
    

    四.map结构遍历

    1. keys()-->将键名都取出来,组成一个可遍历的数据集合

    let m = new Map([
        [123,'abc'],
        ['a','hahaha'],
        [1>2,'baidu.com']
    ]);
    for(let x of m.keys()){
        console.log(x);
    }
    -->123 a false
    

    2. values()

    let m = new Map([
        [123,'abc'],
        ['a','hahaha'],
        [1>2,'baidu.com']
    ]);
    for(let x of m.values()){
        console.log(x);
    }
    -->abc hahaha baidu.com
    

    3. entries()

    let m = new Map([
        [123,'abc'],
        ['a','hahaha'],
        [1>2,'baidu.com']
    ]);
    for(let x of m.entries()){
        console.log(x);
    }
    -->
    Array[123,'abc']
    Array['a','hahaha']
    Array[false ,'baidu.com]
    

    4. forEach()--第一个参数代表键值,第二个参数代表键名

    let m = new Map([
        [123,'abc'],
        ['a','hahaha'],
        [1>2,'baidu.com']
    ]);
    m.forEach(x=>{
        console.log(x);
    })
    -->返回abc hahaha baidu.com
    
    
    m.forEach((x,y)=>{
        console.log(x,y);
    })
    -->返回
    abc 123 
    hahaha a
    baidu.com false
    

    五.map结构扩展运算符

    1.



    输出hd

    2.

    输出Array[123,'hd']

    相关文章

      网友评论

          本文标题:ES6 Map结构数据

          本文链接:https://www.haomeiwen.com/subject/yzpckqtx.html