json 如何在JavaScript中将两个数组合并为一个对象[已关闭]

c90pui9n  于 2023-10-21  发布在  Java
关注(0)|答案(1)|浏览(113)

已关闭,此问题需要details or clarity。它目前不接受回答。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

去年就关门了。
此帖子于17天前编辑并提交审核,未能重新打开帖子:
原始关闭原因未解决
Improve this question
你好,我有JSON响应与结构如下,你可以看到“postID”和“judul”是一个对象内的父是数字数组

[
    {
        "postID": [
            1,
            2,
            3
        ],
        "judul": [
            "Tes",
            "a",
            "TesFront"
        ]
    },
    {
        "postID": [
            4,
            5
        ],
        "judul": [
            "Testing",
            ""
        ]
    },
]

我想做的只是把“postID”和“judul”变成一个新的对象,键名为“newKey”,里面的值是一个有“postID”键和“judul”键的对象,你可以看到与前一个不同的是,现在“postID”和“judul”在“newKey”对象中,像这样:

[
    {
        "newKey": {
          "postID": [
            1,
            2,
            3
          ],        
          "judul": [
            "Tes",
            "a",
            "TesFront"
          ]
        },
    },
    {
        "newKey":{
        "postID": [
            4,
            5
        ],
        "judul": [
            "Testing",
            ""
        ]
}
    },
]

希望有人能帮我解决这个问题。

0yg35tkg

0yg35tkg1#

解决所提出的问题。你实际上想转换这个对象的数组:

{
  "prop1": "val",
  "prop2": "val2"
}

这个对象的数组中:

{
  "newprop": {
    "prop1": "val1",
    "prop2": "val2"
  }
}

您可以使用.map将数组投影到新形状中。举例来说:

var newArr = arr.map(x => {
  return {
    newprop: {
      prop1: x.prop1,
      prop2: x.prop2
    }
  }
});

你的可能看起来像这样:

var newArr = arr.map(x => {
  return {
    namaBagian: x.namaBagian,
    bagianID: x.bagianID,
    newKey: {
      postID: x.postID,
      judul: x.judul
    }
  }
});

如果对象的形状更加动态,则可以巧妙地使用spread运算符,而不必显式地指定每个值。但总的原则是一样的。您要做的是将一个数组Map到一个新数组中,其中每个元素都采用从现有元素上的数据构建的新形状。

相关问题