javascript - 在javascript中展平json数组
问题描述
我开始使用 javascript。努力展平一个 javascript 对象。
[
{
"timestamp":"2019-01-01T00:00:00.000Z",
"result":[
{
"MarketShare":89905.0,
"Territory":"PHILADELPHIA PA"
},
{
"MarketShare":82991.0,
"Territory":"SEATTLE WA"
},
]
},
{
"timestamp":"2019-02-01T00:00:00.000Z",
"result":[
{
"MarketShare":73662.0,
"Territory":"PHILADELPHIA PA"
},
{
"MarketShare":67059.0,
"Territory":"SEATTLE WA"
}
]
},
{
"timestamp":"2019-03-01T00:00:00.000Z",
"result":[
{
"MarketShare":72898.0,
"Territory":"PHILADELPHIA PA"
},
{
"MarketShare":68013.0,
"Territory":"SEATTLE WA"
}
]
},
{
"timestamp":"2019-04-01T00:00:00.000Z",
"result":[
{
"MarketShare":74607.0,
"Territory":"PHILADELPHIA PA"
},
{
"MarketShare":66769.0,
"Territory":"SEATTLE WA"
}
]
},
{
"timestamp":"2019-05-01T00:00:00.000Z",
"result":[
{
"MarketShare":93932.0,
"Territory":"PHILADELPHIA PA"
},
{
"MarketShare":86514.0,
"Territory":"SEATTLE WA"
}
]
}
]
预期的输出格式是:
[
{"timestamp":"2019-01-01T00:00:00.000Z","MarketShare":89905.0,"Territory":"PHILADELPHIA PA"},
{"timestamp":"2019-01-01T00:00:00.000Z","MarketShare":82991.0,"Territory":"SEATTLE WA"},
{"timestamp":"2019-02-01T00:00:00.000Z","MarketShare":73662.0,"Territory":"PHILADELPHIA PA"},
{"timestamp":"2019-02-01T00:00:00.000Z","MarketShare":67059.0,"Territory":"SEATTLE WA"},
{"timestamp":"2019-03-01T00:00:00.000Z","MarketShare":72898.0,"Territory":"PHILADELPHIA PA"},
{"timestamp":"2019-03-01T00:00:00.000Z","MarketShare":68013.0,"Territory":"SEATTLE WA"},
{"timestamp":"2019-04-01T00:00:00.000Z","MarketShare":74607.0,"Territory":"PHILADELPHIA PA"},
{"timestamp":"2019-04-01T00:00:00.000Z","MarketShare":66769.0,"Territory":"SEATTLE WA"},
{"timestamp":"2019-05-01T00:00:00.000Z","MarketShare":93932.0,"Territory":"PHILADELPHIA PA"},
{"timestamp":"2019-05-01T00:00:00.000Z","MarketShare":86514.0,"Territory":"SEATTLE WA"}
]
尝试构建一个通用函数,该函数可以展平结果数组中存在的任意数量的键值对。关于如何在 javascripts 中操作 json 对象的简单解释将非常有帮助
解决方案
您可以尝试(假设 yourArray 包含您的数组):
let out = [];
for( obj of yourArray ) {
for( res of obj.result ) {
out.push({ ...res, timestamp:obj.timestamp })
}
}
console.log(out);
推荐阅读
- javascript - 如何将数据从服务器端代码放入 html 元素?
- python - Python Google Cloud PubSub 超时异常
- javascript - 无法在 GatsbyJS 中查看 Markdown 文件正文中的内联图像
- r - 如何将两列csv转换为第二列的向量?
- python - 带有 selenium python 的动作链示例,人类喜欢鼠标移动然后单击按钮示例;
- javascript - 如何为 SFTP 服务器实现 for 循环
- python - 第二个模型预测的 MXNet 超时
- node.js - 过滤数据时,如何只显示找到的记录数?
- devops - Veracode 扫码与 Black Duck 扫码有何不同
- python - 混淆矩阵只需要 0 和 1 类