更改Javascript对象数组数据

时间:2017-12-03 06:18:06

标签: javascript d3.js

如何输入自己的数据或硬编码数据,而不是使用this example中的forEach()功能?

例如,我有自己的数据,它只是夏威夷,阿拉斯加和蒙大拿州,气温相同(高:60,中:45,低:40)。

理想情况下,我要输入一个状态数据的简单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 个答案:

答案 0 :(得分: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
  },
}

此外,还有一个颜色属性(我没有在这里显示)和一个fill属性,我写了一个三元组(因为你的数据中只有三个状态)。

以下是更新后的代码:http://bl.ocks.org/anonymous/60b445b86494aac36bf04283e674190e/a1e9043087aa27312f17fdf9575b2f0654330c22