Javascript D3使用对象数组从键获取值

Javascript D3使用对象数组从键获取值,javascript,arrays,csv,d3.js,linechart,Javascript,Arrays,Csv,D3.js,Linechart,所以我读了一份关于国家GDP的csv文件,过滤掉了不需要的栏目和国家。现在我想知道如何从这个对象数组中提取值,并使用它们为多系列折线图创建x轴和y轴。这是我的密码 function country(element) { return element.CountryName == "Brazil" || element.CountryName == "China" || element.CountryName == "Russian

所以我读了一份关于国家GDP的csv文件,过滤掉了不需要的栏目和国家。现在我想知道如何从这个对象数组中提取值,并使用它们为多系列折线图创建x轴和y轴。这是我的密码

    function country(element) {
    return element.CountryName == "Brazil" ||
            element.CountryName == "China" ||
            element.CountryName == "Russian Federation" ||
            element.CountryName == "United Kingdom" ||
            element.CountryName == "United States" ||
            element.CountryName == "Germany";
}
d3.csv("GDP.csv", function(d) {
    return {
        CountryName : d["Country Name"],
        Indicator : d["Indicator Name"],
        y2004 : d["2004"],
        y2005 : d["2005"],
        y2006 : d["2006"],
        y2007 : d["2007"],
        y2008 : d["2008"],
        y2009 : d["2009"],
        y2010 : d["2010"],
        y2011 : d["2011"],
        y2012 : d["2012"]
    };
},
    function(error, rows) {
    //document.write(rows);
    dataset = rows;
    var filtered = dataset.filter(country);
    console.log(filtered);

    //Code to create axes and map keys
});
现在我有一个6个对象的数组,每个对象在指定的键上都有值。我看到的示例通常是从文件的头行读入键值,但是我该如何处理这种尝试呢

X轴表示2004-2012年,即列名和键值。Y轴是这些年份的数值范围。结果是每个国家有6条线

我试图遵循的例子是


我需要解析日期吗?我不这么认为,因为我只是研究年份数字,它们是关键值,而不是关键值。谢谢。

我将整理我的数据,这样您就可以为每个点设置4个键:

{country:"Germany", indicator:"...",  year:2004, value:55}
而不是每年都有钥匙。只需对csv呼叫进行后期处理

进行此操作时,请确定最小/最大年份和最小/最大值


接下来,使用[minYear,maxYear]域构建一个年份比例(x轴)。接下来,使用[minValue,maxValue]域为y轴构建一个值比例。

D3希望使用具有相同关键帧集的对象数组。如果必须,请进行预处理阶段,在该阶段中,您可以将数据转换为如下内容:

[
    { key: value, key2: value },
    { key: value, key2: value },
    { key: value, key2: value },
    { key: value, key2: value },
    { key: value, key2: value }
]
否则,您将在使用D3时度过一段非常糟糕的时光,因为工具箱中的大多数函数式编程特性根本不适合您