2013-12-24 41 views
0

我有以下代碼的正常工作,迭代內部的數據:[]以JavaScript

Morris.Bar({ 
      element: 'barchart', 
      axes: true, 
      data: [ json.bar.bar1 ], 
      xkey: 'x', 
      ykeys: ['y', 'z', 'a'], 
      labels: ['Facebook', 'LinkedIn', 'Google+'], 
      barColors: ['#707f9b', '#455064', '#242d3c'] 
     }); 

THE JSON

{ 
"bar" : 
{ 
"bar1" : { 
    "x" : "2013 Q1", 
    "y" : "9", 
    "z" : "6", 
    "a" : "8" 
     }, 
"bar2" : { 
    "x" : "2013 Q2", 
    "y" : "5", 
    "z" : "7", 
    "a" : "3" 
     }, 
"bar3" : { 
    "x" : "2013 Q3", 
    "y" : "8", 
    "z" : "9", 
    "a" : "6" 
     }, 
"bar4" : { 
    "x" : "2013 Q4", 
    "y" : "7", 
    "z" : "9", 
    "a" : "8" 
     } 
} 
} 

然而,當我嵌入環即時顯示在Dreamweaver語法錯誤。此外,輸出不會呈現在網頁上。

Morris.Bar({ 
      element: 'barchart', 
      axes: true, 
      data: [ 
      for(i=1;i<=4;i++) 
      { 
      json.bar.bar + i + ',' 
      } 
      ], 
      xkey: 'x', 
      ykeys: ['y', 'z', 'a'], 
      labels: ['Facebook', 'LinkedIn', 'Google+'], 
      barColors: ['#707f9b', '#455064', '#242d3c'] 
     }); 

的總體思路是,以使它看起來像這樣

Morris.Bar({ 
      element: 'barchart', 
      axes: true, 
      data: [ json.bar.bar1, 
        json.bar.bar2, 
        json.bar.bar3, 
        json.bar.bar4 ], 
      xkey: 'x', 
      ykeys: ['y', 'z', 'a'], 
      labels: ['Facebook', 'LinkedIn', 'Google+'], 
      barColors: ['#707f9b', '#455064', '#242d3c'] 
     }); 
+0

什麼是'json.bar.bar [1-4]'? – thefourtheye

+0

數組定義中不能有for循環。 – tewathia

+0

你需要在Morris.Bar對象之外創建數組......然後只需將數組傳遞給data數據庫 – charlietfl

回答

1

您不能在數組中使用for循環。

你必須在外面做。

或者在ECMAScript5,你可以用做:

data: Object.keys(json.bar).map(function(key) {return json.bar[key]}), 
+0

WOW!奇蹟般有效! –

3

試着這麼做:

data: (function() { 
    var newBar = []; 
    for (i = 1; i <= 4; i++) { 
     newBar.push(json.bar["bar"+i]); //for the current structure of your json.bar object    
    } 
    return newBar 
})(); 

您可能想要使用數組,json.bar,爲你的酒吧值。然後,您可以改爲newBar.push(json.bar[i])(但要注意i值,但第一個元素的索引應爲0)

+0

好的......但我們不知道這是否是一個字符串。 – thefourtheye

+0

@thefourtheye你是什麼意思? – tewathia

+0

這不起作用,但@xdazz寫了proplery, data:Object.keys(json.bar).map(function(key){return json.bar [key]}), –