2017-12-03 248 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