gpt4 book ai didi

javascript - 我如何使用 JavaScript 中的函数式样式将这个数组数组转换为对象数组?

转载 作者:行者123 更新时间:2023-11-30 07:19:54 27 4
gpt4 key购买 nike

对于我试图以特定方式解决的这个问题,我将不胜感激。我正在尝试使用 forEach() 和 reduce() 将数据集从一种格式(数组数组)转换为另一种格式(对象数组)。我知道 arr.forEach(i) => {...} 将访问数组中的每个项目然后我可以使用 arr.reduce(acc, curr) => {...} 来转换嵌套数组及其值我很难想象和推理出如何在嵌套数组中使用 .reduce() 来访问并分配对象中的键值对。预先感谢您的帮助和解释。

这是原始数据:

const theData = [
[
["productName", "The Product"],
["productOrigin", "Some Country"],
["productNumber", 100],
["comment", "Some Comment"]
],
[
["productName", "Another Product"],
["productOrigin", "Some other Country"],
["productNumber", 45],
["comment", "some comment"]
]
]

我正在拍摄的输出是这样的:

const formattedData = [
{
productName: "The Product",
productOrigin: "Some Country",
productNumber: 100,
comment: "Some Comment
},
productName: "Another Product",
productOrigin: "Some other Country",
productNumber: 45,
comment: "Some Comment"
}

]

最佳答案

使用Array.map , Array.reduce & Object.assign

使用Array.map,我们可以将数组中的每个条目转换为另一个值。在我们的例子中,我们将把数组转换为对象。

对于每个数组(父数组中的条目),我们将使用Array.reduce,我们将在其中将数组缩减为一个对象。对于数组中的每个条目,我们使用 Object.assign

在对象中添加键/值对

const theData = [[["productName", "The Product"], ["productOrigin", "Some Country"], ["productNumber", 100], ["comment", "Some Comment"]],[["productName", "Another Product"],["productOrigin", "Some other Country"],["productNumber", 45],["comment", "some comment"]]];

const result = theData.map(v => v.reduce((a,[k,v]) => Object.assign(a, {[k]:v}), {}));
console.log(result);

关于javascript - 我如何使用 JavaScript 中的函数式样式将这个数组数组转换为对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53590111/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com