Javascript 利用d3.queue()将CSV和TopoJSON连接在一起

Javascript 利用d3.queue()将CSV和TopoJSON连接在一起,javascript,json,csv,d3.js,Javascript,Json,Csv,D3.js,我发现很少有d3文档介绍如何使用JSON文件映射和使用公共密钥连接CSV度量文件 如果可能的话,我想使用d3.queue()。到目前为止,我一直在使用d3.map().set,但我发现它用于单键、值对,并且似乎不能用于>1个值。如果我离开这里,请有人纠正我 我试图在bl.ock中找到一个双for循环。这里的创建者使用了两个JSON文件,我几乎没有机会根据自己的需要对其进行裁剪。下面是他的两个JSON文件的链接 要使用的连接键(我说SQL比JS好得多)是JSON中的countries.id,以

我发现很少有d3文档介绍如何使用JSON文件映射和使用公共密钥连接CSV度量文件

如果可能的话,我想使用
d3.queue()
。到目前为止,我一直在使用
d3.map().set
,但我发现它用于单键、值对,并且似乎不能用于>1个值。如果我离开这里,请有人纠正我

我试图在bl.ock中找到一个双
for
循环。这里的创建者使用了两个JSON文件,我几乎没有机会根据自己的需要对其进行裁剪。下面是他的两个JSON文件的链接

要使用的连接键(我说SQL比JS好得多)是JSON中的
countries.id
,以及CSV中的
country\u fips

CSV中的
县FIP
被与其相关的指标压平是否有问题?上面链接的示例中的double
for
循环使用JSON的层次结构

d3.queue()
    .defer(d3.json, "https://d3js.org/us-10m.v1.json")
    //.defer(d3.csv, "countymetrics_json.csv" , function(d) {metrics.set(d.county_fips, +d.actual_margin);})
    .defer(d3.csv, "https://raw.githubusercontent.com/MatthewSnellOKC/mapping/master/merge/countymetrics_json.csv", function(d) {metrics.set(d.county_fips, +d.actual_margin);})
    .await(ready);

function ready (error, us) {
    if (error) throw error;
    var counties = us.objects.counties.geometries;
}

我已经从使用
d3.queue()
d3.map().set
转换,并且能够使用双
for
循环将CSV连接到JSON。请参阅下面的工作代码

d3.json("https://d3js.org/us-10m.v1.json", function(error, us) {
    if (error) throw error;

    d3.csv("countymetrics_json.csv", function(error, csv) {
        var counties = us.objects.counties.geometries;

        csv.forEach(function(d, i) {
            counties.forEach(function(e, j) {
                if (d.county_fips == e.id) {
                    e.actual_margin = d.actual_margin;
                    e.state_code = d.state_code;
                    e.state_name = d.state_name;
                    e.county = d.county;
                    e.county_population = d.county_population;
                    e.business_population = d.business_population;
                    e.active_merchants = d.active_merchants;
                    e.actual_margin = d.actual_margin;
                }
            })
        })
    })
});