重新设置对象的格式

Reformat an object

本文关键字:对象 格式 设置 新设置      更新时间:2023-09-26

>我有以下内容:

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

我希望它读到:

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

我已经设法为第二级提供了一个"id"键,但我无法弄清楚如何为每个状态添加一个 - 我该怎么做?

法典:

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

这是一个小提琴

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

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

更新的小提琴:https://jsfiddle.net/ouybL99u/2/

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