#javascript #jquery #d3.js
#javascript #jquery #d3.js
Вопрос:
мои данные выглядят так:
var IDData = JSON.stringify([["node/105173", "node/38180995", "Agent", "Customer", "1379644.0", 1, 264.0, "1374903"]...]
Каждая строка данных соответствует одному и тому же формату. Но длина строк массива arrays не фиксирована. Я пытаюсь построить графики, используя эти данные, используя d3.js .
$( document ).ready(function() {
console.log(IDData);
var galData = JSON.parse(IDData);
need a way here to iterate through the data so that
var startnodes = galData[0][0],galData[1][0]....galdata[n][0]
where n is the length of the array
var endnodes = galData[0][1],galData[1][1],galData[2][1]...galData[n][1]
var nodetype = galData[0][2],galData[1][2],galData[2][2]....galData[n][2]
var Paytime = galData[0][3],galData[1][3]..galdata[n][3]
var TXN_COUNT = galdata[0][4],galData[1][4],galData[2][4]...galData[n][4]
var Total_Amt = galData[0][5],galData[1][5],galData[2][5]...galData[n][5]
var SendTime = galData[0][6],galData[1][6]...galData[n][6]
makegraph(startnodes,endnodes)
var nodetype
— это атрибут узла, а var Paytime
, TXN_COUNT
Total_Amt
, SendTime
— это атрибуты ссылки.
Совсем не знаком с d3.js и не нашел простого способа выполнить итерацию .
Комментарии:
1. что случилось с запятыми? предполагается, что это массивы или ..?
2. @Pamblam это справедливое замечание . На самом деле я не знаю, как сохранить эти результаты. ПОЭТОМУ я использовал запятые.
Ответ №1:
var IDData = JSON.stringify([["node/105173", "node/38180995", "Agent", "Customer", "1379644.0", 1, 264.0, "1374903"],["node/105173", "node/38180995", "Agent", "Customer", "1379644.0", 1, 264.0, "1374903"],["node/105173", "node/38180995", "Agent", "Customer", "1379644.0", 1, 264.0, "1374903"]]);
var galData = JSON.parse(IDData);
var startnodes = [],
endnodes = [],
nodetype = [];
// If array
galData.map(function(e,i){
startnodes.push(e[0]);
endnodes.push(e[1]);
nodetype.push(e[2]);
});
console.log(startnodes);
console.log(endnodes);
console.log(nodetype);
// If string
startnodes = startnodes.join(',');
endnodes = endnodes.join(',');
nodetype = nodetype.join(',');
console.log(startnodes);
console.log(endnodes);
console.log(nodetype);
Не охватывает все, но вы должны получить представление.
Комментарии:
1. @marcinek Позвольте мне попробовать. И как мне назначить свойства или атрибуты ссылкам?
2. К сожалению, я никогда не использовал d3.js :/ — это просто создаст переменные в виде строк или массивов, как вы хотели.