私は現在のサブタスクを取得するための、いくつかのJavaScriptを持っている多次元配列(JSONエンコードされたので、まだ右の専門用語ということがある?)多次元配列から次に低い値になっ
{"tasks":[{"task":"first parent task", "sub-tasks":[{"sub-task":"first sub task", "startTime":0, "endTime":30}, {"sub-task":"second sub task", "startTime":65, "endTime":90}]}, {"task":"second parent task", "sub-tasks":[{"sub-task":"task 2 sub task 1", "startTime":35, "endTime":45},{"sub-task":"task 2 sub task 2", "startTime":95, "endTime":100}]}]}
を持っています私はstarttimeで次のサブタスクを取得しようとしていますが、何らかの理由で、同じ親タスクで次のサブタスクしか取得できません。 は、だから私はすべき出力を探しているものをここに
first parent task - first sub task -> nextTask = second parent task - task 2 sub task 1 -> nextTask = first parent task -> second sub task -> nextTask = second parent task - task 2 sub task 2
である私は現在持っているコードですが、それは、同じアレイ内で私にサブタスクを与えます。
for(var r=0;r<tasks.length;r++){ for (var i = 0; i<tasks[r].sub-tasks.length){ if(tasks[r].sub-tasks[i].startTime==currenttimer){ showTask(tasks[r].sub-tasks[i], tasks); } } } function showTask(current, tasks){ jQuery('div#currentTask').text(current.sub-task); var nextStep = current+200; // just to set the next beyond the length of all tasks for (var nt=0; nt<tasks.length; nt++){ for (var nst=0; nst<tasks[nt].sub-tasks.length; nt++){ if(tasks[nt].sub-tasks[nst].startTime<nextStep && tasks[nt].sub-tasks[nst].startTime>current.startTime){ jQuery('div#nextTask').text(tasks[nt].sub-tasks[nst].sub-task); } } } }
このコードは最初の親タスクのサブタスクのみを返しますが、その理由はわかりません。これを行うより良い方法はありますか?
(VAR Rの初期...文では、キャンバス上に描画する別のループ内で実行されるので、私はループにDOMを毎秒以上の更新から保つために、この方法を実行します。
私は入れたくありませんstartTimeを別の配列にするか、配列を取得して元のjsonを参照する必要がありますが、それはちょうど廃棄物のように見えます。
このmVChrに戻るのが遅れて申し訳ありませんが、地獄にいました。 – pedalpete