【发布时间】:2020-06-15 12:39:04
【问题描述】:
编辑:如果 JSON 中有更多对象,则答案不起作用:/ 如果您能再看一次,我将不胜感激。
我正在尝试分离 JSON 数组以使用单个数组创建新对象。
const objs = [{
id: ["18772729849", "17773133341", "17773173696"],
o: 552750,
g: 2,
p: 5427.37,
f: ["0.07480893", "0.07703563", "0.07160716"],
b: ["76561198311594977", "76561198311424548", "76561198312084911"],
d: ["uYEY1BQ", "jSdgIK5", "lldBCJt"],
},
{
id: ["5122519", "7125125", "124124"],
o: 12440,
g: 412,
p: 4124,
f: ["0.033", "0.0123", "0.412412"],
b: ["76561198124421421", "712412441248", "71241244911"],
d: ["uYasdasd1BQ", "jSasdasdK5", "llfasCJt"],
}
];
我的输出应该是这样的:
[{
id: ['18772729849'],
o: 552750,
g: 2,
p: 5427.37,
f: ['0.07480893'],
b: ['76561198311594977'],
d: ['uYEY1BQ']
},
{
id: ['17773133341'],
o: 552750,
g: 2,
p: 5427.37,
f: ['0.07703563'],
b: ['76561198311424548'],
d: ['jSdgIK5']
},
{
id: ['17773173696'],
o: 552750,
g: 2,
p: 5427.37,
f: ['0.07160716'],
b: ['76561198312084911'],
d: ['lldBCJt5']
},
{
id: ['5122519'],
o: 12440,
g: 412,
p: 4124,
f: ['0.033'],
b: ['76561198124421421'],
d: ['uYasdasd1BQ']
},
{
id: ['7125125'],
o: 12440,
g: 412,
p: 4124,
f: ['0.0123'],
b: ['712412441248'],
d: ['jSasdasdK5']
},
所以“o”、“g”、“p”与原始对象中的相同。
解决方案:
const objs = [{ id: ["18772729849", "17773133341", "17773173696"], o: 552750, g: 2, p: 5427.37, f: ["0.07480893", "0.07703563", "0.07160716"], b: ["76561198311594977", "76561198311424548", "76561198312084911"], d: ["uYEY1BQ", "jSdgIK5", "lldBCJt"],},{ id: ["5122519", "7125125", "124124"], o: 12440, g: 412, p: 4124, f: ["0.033", "0.0123", "0.412412"], b: ["76561198124421421", "712412441248", "71241244911"], d: ["uYasdasd1BQ", "jSasdasdK5", "llfasCJt"]}];
var result = objs.flatMap(obj=>{
return Array.from({length:obj.id.length},(_,i)=>Object.fromEntries(
Object.entries(obj).map(([key, val])=>[key, Array.isArray(val) ? [val[i]] : val])
));
});
console.log(result);
【问题讨论】:
-
你能参考一些你迄今为止尝试过的源代码吗?
标签: javascript node.js arrays json