2017-12-03 244 views
1

如何輸入我自己的數據或硬編碼數據,而不是使用this example中的forEach()函數?例如,我有我自己的數據,只有夏威夷,阿拉斯加和蒙大拿州有相同的溫度(高:60,中:45,低:40)。更改Javascript對象陣列數據

理想情況下,我要輸入一個簡單的狀態數據excel/csv文件。

這是從源頭上forEach()

var sampleData ={}; /* Sample random data. */ 
["HI", "AK", "FL", "SC", "GA", "AL", "NC", "TN", "RI", "CT", "MA", 
"ME", "NH", "VT", "NY", "NJ", "PA", "DE", "MD", "WV", "KY", "OH", 
"MI", "WY", "MT", "ID", "WA", "DC", "TX", "CA", "AZ", "NV", "UT", 
"CO", "NM", "OR", "ND", "SD", "NE", "IA", "MS", "IN", "IL", "MN", 
"WI", "MO", "AR", "OK", "KS", "LS", "VA"] 
    .forEach(function(d){ 
     var low=Math.round(100*Math.random()), 
      mid=Math.round(100*Math.random()), 
      high=Math.round(100*Math.random()); 
     sampleData[d]={low:d3.min([low,mid,high]), high:d3.max([low,mid,high]), 
       avg:Math.round((low+mid+high)/3), color:d3.interpolate("#ffffcc", "#800026")(low/100)}; 
    }); 

回答

1

這是,如果你想只是這三個國家,你所需要的結構,沒有forEach()

var sampleData = { 
    HI: { 
    low: 40, 
    avg: 45, 
    high: 60 
    }, 
    AL: { 
    low: 40, 
    avg: 45, 
    high: 60 
    }, 
    MT: { 
    low: 40, 
    avg: 45, 
    high: 60 
    }, 
} 

此外,還有一個顏色屬性(我沒有在這裏展示)和一個填充屬性,我寫了一個三元組(因爲你的數據只有三個狀態)。

下面是更新後的代碼:http://bl.ocks.org/anonymous/60b445b86494aac36bf04283e674190e/a1e9043087aa27312f17fdf9575b2f0654330c22