代码之家  ›  专栏  ›  技术社区  ›  Leonel Matias Domingos

使用lodash 3将对象转换为对象数组

  •  0
  • Leonel Matias Domingos  · 技术社区  · 6 年前

    我如何转换这样的对象

    {
      "ID_PROC_GD": "1",
      "DT_INI": "2018-06-06",
      "CD_GD": "1",
      "DT_INI_GD": "2018-05-28",
      ...
    }
    

    为了这个

    [
      {
        "name": "DT_INI",
        "value": "2018-06-06"
      },
     ...
    ]
    

    我用的是罗达什3.10.1

    3 回复  |  直到 6 年前
        1
  •  1
  •   iofjuupasli    6 年前

    map 始终返回数组类型,并且可以在迭代器中同时使用值和键:

    _.map(obj, (value, name) => ({name, value}))
    

    const obj = {
      "ID_PROC_GD": "1",
      "DT_INI": "2018-06-06",
      "CD_GD": "1",
      "DT_INI_GD": "2018-05-28",
    }
    
    const result = _.map(obj, (value, name) => ({
      name,
      value
    }))
    
    console.log(result)
    <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.min.js"></script>
        2
  •  1
  •   Hassan Imam Ravi kant    6 年前

    你可以使用 Object.entries() array#map .

    let data = { "ID_PROC_GD": "1", "DT_INI": "2018-06-06", "CD_GD": "1", "DT_INI_GD": "2018-05-28"},
        result = Object.entries(data).map(([name, value]) => ({name, value}));
    console.log(result);

    你可以使用 map

    let data = { "ID_PROC_GD": "1", "DT_INI": "2018-06-06", "CD_GD": "1", "DT_INI_GD": "2018-05-28"},
        result = _.map(data, (value, name) => ({name, value}));
    console.log(result);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.min.js"></script>
        3
  •  0
  •   Mukund    6 年前
     let obj = {
      "ID_PROC_GD": "1",
      "DT_INI": "2018-06-06",
      "CD_GD": "1",
      "DT_INI_GD": "2018-05-28" 
    }
    
    function getNameValObj(ele) {
      return {name: ele, value:obj[ele]};
    }
     
    let objList = _.flatMap(Object.keys(obj), getNameValObj);