ES6 map

作者: 苏码码 | 来源:发表于2021-08-26 09:22 被阅读0次
 // map 类似于object  键值对
    var m = new Map();
    m.set('key','value');
    m.set('name','jindu').set('a','a');

    var o = {id:100};
    m.set(o,'abc');

    //另一种添加方式
    let m1 = new Map([['a',1],['b',2],['c',3],['id',4]]);

    // Map实例的属性和方法
    //1. size属性
    const m = new Map();
    m.set('a','a').set('b','b');
    m.size //2

    //2. set(key, value)
    const m = new Map();
    m.set('qq', '2429462491')        // 键是字符串
    m.set(100, 'jindu')     // 键是数值
    m.set(undefined, 'value')    // 键是 undefined

    //3. get(key)  读取`key`对应的键值,如果找不到`key`,返回`undefined`。
    const m = new Map();
    var a = {id:2};
    m.set(a,'value');
    m.set('name','jindu');
    m.get(a);     //'value'   通过变量a来获取
    m.get('name');   //jindu   通过'name'属性获取

    //4. has(key) 返回一个布尔值,表示某个键是否在当前 Map 对象之中。
    const m = new Map();
    var a = {id:2};
    m.set(a,'value');
    m.set('name','jindu');

    m.has('name')  //true
    m.has('a')   //false
    m.has(a)   //true

    //5. delete(key)  删除某个键,返回`true`。如果删除失败,返回`false`。
    const m = new Map();
    var a = {id:2};
    m.set(a,'value');
    m.set('name','jindu');

    m.delete('name')  
    m.has('name')  //false

    //6. clear()    清除所有成员,没有返回值。
    const m = new Map();
    var a = {id:2};
    m.set(a,'value');
    m.set('name','jindu');

    m.clear();

    // Map遍历方法
    for(let [k,v] of m1){
        console.log(k);
        console.log(v);
    };
    //keys()   values()  entries()
    for(let k of m1.keys()){
        console.log(k);
    };
    for(let v of m1.values()){
        console.log(v);
    };

    //map类型转换
    //1、对象转数组
    var obj = {'a':1,'b':2,'c':3};
    Object.keys(obj);  //["a", "b", "c"]
    Object.values(obj); //[1, 2, 3]

    //2、map类型转数组
    let m1 = new Map([['a',1],['b',2],['c',3],['id',4]]);
    [...m1.keys()];  //["a", "b", "c", "id"]   
    [...m1.values()];
    [...m1]; //[['a',1],['b',2],['c',3],['id',4]]

    //3、map转对象object
    let m2 = new Map([['a',1],['b',2],['c',3],['id',4]]);
    var o2 = {};
    for(let [k,v] of m2){
        o2[k] = v;
    };
    console.log(o2)  //{a: 1, b: 2, c: 3, id: 4}

    //4、对象object转map
    var obj = {'a':1,'b':2,'c':3};
    let m3 = new Map();
    for(let k in obj){
        m3.set(k,obj[k]);
    };
    console.log(m3);

    //二种方式
    let m4 = new Map(Object.entries(obj));

相关文章

网友评论

      本文标题:ES6 map

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