繁体   English   中英

如何在 d3.js 中“取消堆叠”我的 JSON 数据?

[英]How can I “unstack” my JSON data in d3.js?

我在 JSON 数组中有数据,如下所示:

 [{"TEACHER":3.7},{"STUDENT":1.9}]

我想要的 output 是一个 JSON 数组,如下所示:

 var statements = [ { name: "TEACHER", value: 3.7 }, { name: "STUDENT", value: 1.9 } ];

如何“取消堆叠”我必须添加变量标签的数据?

它是您原来的 object 的唯一钥匙吗? 如果是这种情况,您可以使用唯一的项目Object.keys()Object.entries()返回。 如果还有其他属性,您可以在键中查找匹配项并进行相应处理。

 const input = [{"TEACHER":3.7},{"STUDENT":1.9}]; const output = []; input.forEach(item => { const key = Object.keys(item)[0]; output.push({name: key, value: item[key]}); }); console.log(output);

这就是我想出的。 不过,可能有一种更优雅的方式来做到这一点。

 var x = [{"TEACHER":3.7},{"STUDENT":1.9}]; console.log(unstack(x)); function unstack(stacked){ var unstacked = []; stacked.forEach((element) => { unstacked.push({ name: Object.keys(element)[0], value: Object.values(element)[0] }); }); return unstacked; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM