javascript - 重新格式化对象

标签 javascript

我有以下内容:

{
  "SOL": {
    "B": [
        "ABC",
        "DEF"
    ],
    "C": [
        "JKL",
        "MNO"
    ]
  }
}

我想读一下:

{
  "SOL": [
    {
      "id": "B",
      "states": [
      {
        "id": "ABC"
      },
      {
        "id": "DEF"
      ]
    },
    {
      "id": "C",
      "states": [
      {
        "id": "JKL"
      },
      {
        "id": "MNO"
      }
      ]
    }
  ]
}

我已经设法为第二级提供一个“id” key ,但我不知道如何向每个状态添加一个 - 我该怎么做?

代码:

object.SOL = Object.keys(object.SOL).map(function (k) {
    return { id: k, states: object.SOL[k] };
})

Here's a fiddle

最佳答案

您可以在内部使用另一个mapstates重新映射到对象:

object.SOL = Object.keys(object.SOL).map(function (k) {
    return { 
        id: k, 
        states: object.SOL[k].map(function(i){
            return {id: i };
        })
    }
});

更新的 fiddle :https://jsfiddle.net/ouybL99u/2/

关于javascript - 重新格式化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36083440/

相关文章:

javascript - React - 表格行仅在不相关的函数调用后呈现

javascript - 如何返回使用 Google Sheets API spreadsheets.values.get 读取的值?

javascript - 大型 SPA 前端中的静态与动态类型检查?

javascript - 带有 ajax 请求的 mouseover/mouseout 事件

javascript - Highcharts 和 EXTJS 3 : Labels in x axis overlap

javascript - 使用 CSS/JS Firefox 问题翻转卡片

javascript - 防止输入字段将点转换为逗号

javascript - $(document.body) 在 javascript 中是什么意思?

javascript - 如果路由以斜杠结尾,则找不到 Next.js 页面

javascript - 使用 querySelector 更改颜色