【发布时间】:2021-08-26 18:34:48
【问题描述】:
下面是我目前拥有的数组格式
有多个这样的类别,这是提供的一个例子
[
{
"itemId":"123",
"itemName":"name 1",
"category":"electric",
"salePersonName":"person name 1"
},
{
"itemId":"234",
"itemName":"name 2",
"category":"electric",
"salePersonName":"person name 2"
}{
"itemId":"345",
"itemName":"name 3",
"category":"electric",
"salePersonName":"person name 3"
}
]
但我需要将其重组为以下格式,我该如何以动态方式做到这一点,
[
{
"category":"electric",
"items":[
{
"temId":"123",
"itemName":"name 1"
},
{
"itemId":"234",
"itemName":"name 2"
},
{
"itemId":"345",
"itemName":"name 3"
}
],
"salePersons":[
{
"salePersonName":"person name 1"
},
{
"salePersonName":"person name 2"
},
{
"salePersonName":"person name 3"
}
]
}
]
以下是我之前尝试过的代码,但没有给出预期的输出
const array = [{
"itemId": "123",
"itemName": "name 1",
"category": "electric",
"salePersonName": "person name 1"
},
{
"itemId": "234",
"itemName": "name 2",
"category": "electric",
"salePersonName": "person name 2"
}, {
"itemId": "345",
"itemName": "name 3",
"category": "electric",
"salePersonName": "person name 3"
},
{
"itemId": "34111",
"itemName": "name 4",
"category": "newCategory",
"salePersonName": "person name 5"
}
];
let result = {};
array.forEach(function(o) {
result[o.category] = result[o.category] || {};
result[o.category]['items'] = [{
"itemId": result[o.itemId],
"itemName": result[o.itemName]
}];
result[o.category]['salePersons'] = [{
"salePersonName": result[o.salePersonName]
}];
});
console.log("result", result)
【问题讨论】:
-
您能否以minimal reproducible example 的身份分享您遇到问题的代码?
-
抱歉@evolutionxbox,我不能提供代码库,因为它是一个私人项目,非常感谢,您这边的任何解决方案来重新排列我上面提到的数组格式
-
很抱歉给您带来了困惑。我不是要项目来源。只有minimal reproducible example 显示您遇到问题的代码。 StackOverflow 不是一个要求别人为你写代码的地方。
-
@evolutionxbox 用代码更新了帖子
标签: javascript arrays json multidimensional-array format