【发布时间】:2018-05-29 17:17:30
【问题描述】:
我有一个来自共享点表的 JSON 对象(数组),我需要重组行,但有点困难(我是 JS 的初学者)。
我有这样的事情:
[{'ID':'1', 'Title': 'First record', 'blue':'3', 'red':'6', 'yellow':'2'},
{'ID':'2', 'Title': 'Second record', 'blue':'1', 'red':'3', 'yellow':'6'}]
我需要把它转换成:
[{'ID':'1', 'Title': 'First record', 'category':'blue', 'count':'3'},
{'ID':'1', 'Title': 'First record', 'category':'red', 'count':'6'},
{'ID':'1', 'Title': 'First record', 'category':'yellow', 'count':'2'},
{'ID':'2', 'Title': 'Second record', 'category':'blue', 'count':'1'},
{'ID':'2', 'Title': 'Second record', 'category':'red', 'count':'3'},
{'ID':'2', 'Title': 'Second record', 'category':'yellow', 'count':'6'}]
我想要达到的目标:
- 创建单独的行以“展开”三个类别字段(蓝色、红色、黄色),因此一行变为三行
- 在每个新创建的行中保留其他字段(ID、标题)
我正在尝试重新格式化这些数据,以便将数组输入 Dimple/D3 图表,以创建一个分类图表,显示每个类别的值计数。
我尝试在我找到的示例中执行 for...each 并在循环和 _.map 中执行循环,但没有得到我想要的输出(在浏览器中调试很痛苦,所以不确定在哪里代码对我来说失败了:/)。您能否举个例子说明如何正确地进行这种操作(可能是 Underscore 的 .chain .each 和 .map)?最好没有箭头功能(我需要让它在 IE11 中工作)。
提前谢谢你!
【问题讨论】:
-
请添加有效数据。对象不是用括号括起来的,而是用大括号括起来的。
-
数据似乎不正确。我们需要准确的数据。
-
你尝试了什么,我没有看到任何代码或尝试(例如 javascript)。
标签: javascript arrays json d3.js dimple.js