Javascript 在D3/JS中合并两个数据集

Javascript 在D3/JS中合并两个数据集,javascript,d3.js,Javascript,D3.js,我正在尝试创建一个简单的“即插即用”地图模板,允许用户放置一个包含大地水准面和值的csv文件,然后将这些值作为choropleth查看 现在我正在使用双循环合并两个数据集(映射和值),但不知道是否还有其他选项: 这段代码位于加载geodata(fresh_cts)的函数中: 您肯定需要两个循环(或一个嵌套循环)——最理想的方法是限制需要进行的迭代次数。现在,第一个循环通过每个csv行。下面的嵌套循环遍历每一个csv行(作为新的不同对象),然后遍历fresh\u ctss中的每一项,次数与csv中

我正在尝试创建一个简单的“即插即用”地图模板,允许用户放置一个包含大地水准面和值的csv文件,然后将这些值作为choropleth查看

现在我正在使用双循环合并两个数据集(映射和值),但不知道是否还有其他选项:

这段代码位于加载geodata(fresh_cts)的函数中:


您肯定需要两个循环(或一个嵌套循环)——最理想的方法是限制需要进行的迭代次数。现在,第一个循环通过每个csv行。下面的嵌套循环遍历每一个csv行(作为新的不同对象),然后遍历
fresh\u ctss
中的每一项,次数与csv中的行相同

如果将行映射到对象而不是数组中,则可以遍历行一次(总计),然后遍历
fresh\u ctss
(再次为总计)的元素一次。下面的代码假设通信中没有重复的tract

all_comms = {}
comms.forEach(function(d) {
  all_comms[d.tract] = {"community": d.community, "population": d.population}
})
fresh_ctss.forEach(function(e) {
  comm = all_comms[e.properties.geoid]
  e.properties.community = parseInt(comm.community)
  e.properties.population = parseInt(comm.population)
}

您肯定需要两个循环(或一个嵌套循环)——最理想的方法是限制需要进行的迭代次数。现在,第一个循环通过每个csv行。下面的嵌套循环遍历每一个csv行(作为新的不同对象),然后遍历
fresh\u ctss
中的每一项,次数与csv中的行相同

如果将行映射到对象而不是数组中,则可以遍历行一次(总计),然后遍历
fresh\u ctss
(再次为总计)的元素一次。下面的代码假设通信中没有重复的tract

all_comms = {}
comms.forEach(function(d) {
  all_comms[d.tract] = {"community": d.community, "population": d.population}
})
fresh_ctss.forEach(function(e) {
  comm = all_comms[e.properties.geoid]
  e.properties.community = parseInt(comm.community)
  e.properties.population = parseInt(comm.population)
}