【发布时间】:2016-05-17 19:31:09
【问题描述】:
我有一些表格的数据:
var Input = {
"Variable": "Variable Name",
"Data": {
"key_1": value_1,
"key_2": value_2,
"key_3": value_3,
"key_4": value_4,
"key_5": value_5,
},
"Omega": value
};
我想做的是将它重构为这种形式:
var Output = [
{
"variable":"variable name",
values:[
{
"label":"key_1",
"value": value_1
},
{
"label":"key_2",
"value": value_2
},
{
"label":"key_1",
"value": value_1
},
{
"label":"key_3",
"value": value_3
},
{
"label":"key_4",
"value": value_4
},
{
"label":"key_5",
"value": value_5
},
]
我通过循环遍历输入数据并将相关的键/值对推送到输出数组,从输入数据中找到了我需要的内容。但是,这只是给了我一系列值。
我可以(虽然我还没有尝试过)循环遍历数组并将偶数索引推送到“标签”并将奇数索引推送到“值”。我可能最终会这样做,但如果有更明智的方法,例如以我所追求的形式构造输出数组,那么我宁愿这样做。
我最终要做的是在 D3.js 或 NVD3.js 中生成一个条形图,其中键作为标签,值作为条的高度。
但是,我是 d3.js 的新手,到目前为止,我无法使用给定格式的数据生成任何东西
想法?提前致谢。
[已编辑:不是的 JSON。]
【问题讨论】:
-
值数组中的项目顺序重要吗?
-
你用
Omega做什么?从输出中包含还是排除? -
D3.js 有适当的方法:
d3.entries,尽管它返回的数据格式略有不同({key, value},而不是{label, value})。 -
Omega 可以包含在 json 中其他数据的另一个图表中。
标签: javascript arrays d3.js nvd3.js