map和其他类型的转换

// map 转数组
    const map = new Map([
       [1, "one"],
       [2, "two"],
       [3, "three"],
     ]);

     console.log([...map.keys()]); //[1, 2, 3]
     console.log([...map.values()]); // ["one", "two", "three"]

  //   map中 属性名相同 只存储最后一个
     let arr = [
       [1, "one"],
       [1, "one2"],
       [3, "three"],
     ];
     let map = new Map(arr);
     console.log(map);

  //   map 转对象

     function strMapToObj(strMap) {
       let obj = Object.create(null); //创建空的对象
       for (let [k, v] of strMap) {
         // 键 值
         console.log(k, v);
         obj[k] = v;
       }
       return obj;
     }

     const myMap = new Map().set("yes", true).set("no", false);
     console.log(myMap);

     console.log(strMapToObj(myMap));

  // 对象转map

  function objToStrMap(obj) {
    let strMap = new Map();
    for (let k of Object.keys(obj)) {
      console.log(k, obj[k]);
      strMap.set(k, obj[k]);
    }
    return strMap;
  }
  let objBool = { yes: true, no: false };
  let map = objToStrMap(objBool);
  console.log(map);

     let person = {
       name: "张三",
       age: 18,
       address: "郑州",
     };

     // Object.keys(要获取所有键名的对象)
     // 得到当前对象 所有的键
     console.log(Object.keys(person)); //['name', 'age', 'address']

     for (let key of Object.keys(person)) {
       //每一个键名
       console.log(key); //name  age  address
      // console.log(typeof key);
  //     //每一个值
       console.log(person[key]);
     }

  // map 转json
  // map==>obj==>json

  //map 转对象
     function strMapToObj(strMap) {
       let obj = Object.create(null); //创建空的对象
       for (let [k, v] of strMap) {
         obj[k] = v;
       }
       return obj;
     }

  //   //   map 转json  调用的是 map转对象
     function strMapToJson(strMap) {
  //     //                     把map转为对象
       return JSON.stringify(strMapToObj(strMap));
     }

     let myMap = new Map([
       ["yes", true],
       ["no", false],
     ]);

     let str = strMapToJson(myMap);
  //   console.log(str);
  //   console.log(typeof str);
   //'{"yes":true,"no":false}'

  //   json 转map
  // json==>obj===>map
  //   jsonString == > obj ==> map

  function jsonToStrMap(jsonStr) {
    //    对象转map    JSON.parse(jsonStr)=>对象
    return objToStrMap(JSON.parse(jsonStr));

    // objToStrMap()
  }

  //   jsonToStrMap('{"yes": true, "no": false}');
  // Map {'yes' => true, 'no' => false}

  function objToStrMap(obj) {
    let strMap = new Map();
    for (let k of Object.keys(obj)) {
      strMap.set(k, obj[k]);
    }
    return strMap;
  }

  function jsonToStrMap(jsonStr) {
    return objToStrMap(JSON.parse(jsonStr));
  }

  let str = '{"yes": true, "no": false}';
  console.log(jsonToStrMap(str));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值