2015-02-11 74 views
-3

我需要構建一個多維數組看起來就像下面的for循環的JavaScript多維數組格式

var dataSet = [ 
       {color: '#ff00aa', data: [[0,3533]]}, 
       {color: 'red', data: [[1,3325]]}, 
       {color: 'yellow', data: [[2,3003]]}, 

      ]; 

動態我需要的價值推到數據集的數組。我曾試圖與下面的代碼

for(var j=0;j<chartDataArray.length;j++){ 
     dataSet.push({ 
      "color" : 'red', 
      "data" : [[0,3533]] 
     }); 
} 

其工作正常,但如果我做一些動態值添加到數據變量則給出了一個錯誤。請找到下面的代碼

for(var j=0;j<chartDataArray.length;j++){ 
     dataSet.push({ 
      "color" : 'red', 
      "data" : [[chartDataArray[j]]] 
     }); 
     } 
+2

這是一個測驗,我們需要猜測_what_錯誤他得到... – 2015-02-11 11:06:49

+0

@somethinghere沒有。 – 2015-02-11 11:07:27

+0

@axelamthor Woops – somethinghere 2015-02-11 11:07:54

回答

0

比方說

chartDataArray = [ 
        [0, 533] 
       ]; 

,如果你推你的方式,你會

[{ 
    "color" : 'red', 
    "data" : [[[0, 533]]] 
}] 

結束了一個額外的嵌套陣列ISN你想要什麼。

在這種情況下,嘗試:

for(var j=0;j<chartDataArray.length;j++){ 
     dataSet.push({ 
      "color" : 'red', 
      "data" : [chartDataArray[j]] 
     }); 
} 

如果它包含的數字,讓我們說:

chartDataArray = [0, 533]; 

你最終會與

[{ 
    "color" : 'red', 
    "data" : [[0]] 
}, 
{ 
    "color" : 'red', 
    "data" : [[533]] 
}] 

這也不是什麼你要。你必須成對推送數字。嘗試:

for(var j=0;j<chartDataArray.length;j+=2){ 
     dataSet.push({ 
      "color" : 'red', 
      "data" : [[chartDataArray[j], chartDataArray[j+1]]] 
     }); 
} 
+0

謝謝,chartDataArray是一個數組,因此第一個爲我工作。 – 2015-02-11 11:13:22

0

實在是太多了方括號 嘗試[chartDataArray[j]]chartDataArray

{ 
[[0,3533]], 
[[1,3533]] 
} 
0

應包含的項目你有沒有嘗試使用:

var data = [[chartDataArray[j]]]; 
dataset[dataset.length]={ 
    "color" : 'red', 
    "data" : data 
} 

讓我知道...