私はJSに慣れていません。データを整理するという概念は、特定の配列形式(これは私が処理しなければならないもの)からデータを取り出し、別の特定のJSON形式に出力しようとしています。配列をjsonリンクリストに変換するJS?
これは私が把握することはできません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}
]
};
を必要とJavaScriptで
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);
それは本当に良かったと思っています、ありがとう、私はしようとしていることを正確に何を消化しよう! –
これは近いですが、FIRSTソースが2回出現するこの例では機能しません: var data = [{"source": "Agricultural 'waste'"、 "target": "Bio-conversion"、 "value" "124.2729"}、 {"源": "農業廃棄物" "目標": "電力グリッド"、 "値": "0.597"} ]; –
なぜですか?私はあなたが期待したものと全く同じ出力を持っていますか?何が問題ですか ? –