我對JS很陌生,組織數據的概念稍微有些困難,試圖從特定的數組格式中獲取數據(因爲這是我必須處理的)並將其輸出到另一個特定的JSON格式。JS將數組轉換爲json鏈表?
這是將數據傳遞到D3桑基模塊 https://github.com/d3/d3-plugins/blob/master/sankey/sankey.js
我無法弄清楚是怎麼節點的索引添加到鏈接,而不是名稱。
真的,我完全失去了它! 我做了這裏提琴: https://jsfiddle.net/adamdavi3s/kw3jtzx4/
下面是數據的一個例子和輸出所需
var data= [
{"source":"Agricultural 'waste'","target":"Bio-conversion","value":"124.2729"},
{"source":"Bio-conversion","target":"Electricity grid","value":"0.597"},
{"source":"Bio-conversion","target":"Losses","value":"26.862"},
{"source":"Bio-conversion","target":"Liquid","value":"280.322"},
{"source":"Losses","target":"Liquid","value":"280.322"}
];
var output= {
"nodes":[
{"name":"Agricultural 'waste'"},
{"name":"Bio-conversion"},
{"name":"Electricity grid"},
{"name":"Losses"},
{"name":"Liquid"}
],
"links":[
{"source":0,"target":1,"value":124.729},
{"source":1,"target":2,"value":0.597},
{"source":1,"target":3,"value":26.862},
{"source":1,"target":4,"value":280.322},
{"source":3,"target":4,"value":280.322}
]
};
下面是從小提琴我的代碼thusfar
var data=[{"source":"Agricultural 'waste'","target":"Bio-conversion","value":"124.2729"},
{"source":"Bio-conversion","target":"Electricity grid","value":"0.597"},
{"source":"Bio-conversion","target":"Losses","value":"26.862"},
{"source":"Bio-conversion","target":"Liquid","value":"280.322"},
{"source":"Losses","target":"Liquid","value":"280.322"}
];
var sourceArray=[];
for (var i=0; i <data.length; i++) {
var node= {"name":data[i].source};
var found = jQuery.inArray(node, sourceArray);
if (found < 0) {
// Element was not found, add it.
sourceArray.push(node);
}
}
console.log(sourceArray);
這看起來真的很好,謝謝,我會嘗試和消化到底是做什麼! –
如此接近,但在第一個來源出現兩次的示例中不起作用: var data = [{「source」:「Agricultural'waste'」,「target」:「Bio-conversion」,「value」: 「124.2729」}, {「source」:「農業廢棄物」,「目標」:「電網」,「價值」:「0.597」} ]; –
爲什麼?我有你期望的完全相同的輸出?問題是什麼 ? –