如何访问D3中的嵌套数据值

时间:2016-02-08 00:04:47

标签: arrays d3.js

我已经嵌套了我的数据

var nested_data = d3.nest()
  .key(function(d) { return d.Country; })
  .entries(CSV);

并且发现如果在绑定数据时使用此函数,我可以访问数组的值

name.selectAll('.name')
    .data(function(d) {
      return d.values;   <--- Accesses the nested data
    })
     .text(function(d) {
      return d.Name;     <--- Nested value
    })

但是我在项目的其他地方使用它时遇到了麻烦。我需要的另一个嵌套值是一个名为['起点']的字符串。我怎样才能访问此值以在此d3.filter()中使用?

var filter = nested_data.filter(function(d) {
    return ("Island" == d['starting point'])
});

我想试试:d.values ['起点']

甚至创建新变量

var nested_values = nested_data(function(d){return d.values});

但这些都不是有效的。我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以在嵌套数据上过滤数据,如下所示:

nested_data.map(function(m) {
  //for each group do the filter on each value
  m.values = m.values.filter(function(d) {
    //return true for those having starting point as island.
    return d['starting point'] == 'Island';
  })
})

工作代码here