итерации в document.ready (функции) в jquery, d3.js

#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 :/ — это просто создаст переменные в виде строк или массивов, как вы хотели.