首页 > 解决方案 > 我想按照图片中的描述重新格式化 JSON 数组

问题描述

我有一个像这样的对象

"Course": [ 
  { "SSubj1": 0 }, 
  { "SSubjName1": "URDu" }, 
  { "SSubjId1": 1 }, 
  { "SSubj2": 0 }, 
  { "SSubjName2": "Py" }, 
  { "SSubjId2": 2 }, 
  { "SSubj3": 0 }, 
  { "SSubjName3": "Bio" }, 
  { "SSubjId3": 3 } 
]

检查代码中的输出。

"Course": [
  {
    "SSubj1": 0
  },
  {
    "SSubjName1": "URDu"
  },
  {
    "SSubjId1": 1
  },
  {
    "SSubj2": 0
  },
  {
    "SSubjName2": "Py"
  },
  {
    "SSubjId2": 2
  },
  {
    "SSubj3": 0
  },
  {
    "SSubjName3": "Bio"
  },
  {
    "SSubjId3": 3
  }
]

1 不需要对象 > 对象等的数组。我需要一个简单的。我需要这种格式。

"Course": {
    "SSubj1": 0,
    "SSubjName1": "URDu" ,
    "SSubjId1": 1,
    "SSubj2": 0,
    "SSubjName2": "Py",
    "SSubjId2": 2,
    "SSubj3": 0,
    "SSubjName3": "Bio",
    "SSubjId3": 3,
},

标签: javascriptarraysjsonobject

解决方案


如果你有

data = {
  Course: [
    {
      SSubj1: 0,
    },
    {
      SSubjName1: "URDu",
    },
    {
      SSubjId1: 1,
    },
    {
      SSubj2: 0,
    },
    {
      SSubjName2: "Py",
    },
    {
      SSubjId2: 2,
    },
    {
      SSubj3: 0,
    },
    {
      SSubjName3: "Bio",
    },
    {
      SSubjId3: 3,
    },
  ],
}

然后扁平Course化为单个对象是一个单一的 reduce 调用:

data.Course.reduce((acc, v) => ({...acc, ...v}))

输出是

{SSubj1: 0, SSubjName1: "URDu", SSubjId1: 1, SSubj2: 0, SSubjName2: "Py", …}

推荐阅读