簡體   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