Convert Map to JSON object in Javascript

前端 未结 5 947
青春惊慌失措
青春惊慌失措 2020-12-14 08:22

So Ive got the following javascript which contains a key/value pair to map a nested path to a directory.

function createPaths(aliases, propName, path) {
             


        
5条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-14 09:19

    just using ES6 ways

    1. Object.fromEntries

    const log = console.log;
    
    const map = new Map();
    // undefined
    map.set(`a`, 1);
    // Map(1) {"a" => 1}
    map.set(`b`, 2);
    // Map(1) {"a" => 1, "b" => 2}
    map.set(`c`, 3);
    // Map(2) {"a" => 1, "b" => 2, "c" => 3}
    
    // Object.fromEntries ✅
    const obj = Object.fromEntries(map);
    
    log(`\nobj`, obj);
    // obj { a: 1, b: 2, c: 3 }

    1. ...spread & destructuring assignment

    const log = console.log;
    
    const map = new Map();
    // undefined
    map.set(`a`, 1);
    // Map(1) {"a" => 1}
    map.set(`b`, 2);
    // Map(1) {"a" => 1, "b" => 2}
    map.set(`c`, 3);
    // Map(2) {"a" => 1, "b" => 2, "c" => 3}
    
    const autoConvertMapToObject = (map) => {
      const obj = {};
      for (const item of [...map]) {
        const [
          key,
          value
        ] = item;
        obj[key] = value;
      }
      return obj;
    }
    
    const obj = autoConvertMapToObject(map)
    
    log(`\nobj`, obj);
    // obj { a: 1, b: 2, c: 3 }

    refs

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

    https://2ality.com/2015/08/es6-map-json.html

提交回复
热议问题