D3.js汇总嵌套数据

时间:2015-07-27 15:24:40

标签: javascript arrays d3.js content-query-rollup

请帮帮我

我有这样的json文件。

console.log(data.map(function(d)
{return d.Paket.map(function(e) 
{return e.Koordinaten.map(function(f) {return
f.paketaufenthaltsort;})})}));

现在我希望有一个包含" paketaufenthaltsort"的所有值的数组。

所以我尝试了以下内容:

   [[["469/31 A 1; A 3; A 4", "469/31 A 1; A 3; A 4", "469/31 A 1; A 3; A 4"]]]

但是它产生了一个3级的数组。 结果是:

["469/31 A 1; A 3; A 4"]

但我想要的是:

1.jpg

请帮帮我

2 个答案:

答案 0 :(得分:1)

无需在外部数组上调用map(),因为您只对数组Koordinaten感兴趣。通过将包含的对象替换为每个单独对象的属性paketaufenthaltsort的值,只需要将此数组映射到所需的输出。您只需要在每个阵列上调用Array.prototype.forEach()来迭代外部数组:

data.forEach(function(d) {
    d.Paket.forEach(function(p) {
        var orte = p.Koordinaten.map(function(k) {
            return k.paketaufenthaltsort;
        });
        console.log(orte);
    });
});

查看此JSFiddle以获取有效工作示例。

答案 1 :(得分:0)

您可以使用:

console.log(data.map(function(d){
return d.Paket.map(function(e) 
{return e.Koordinaten.map(function(f) {return
f.paketaufenthaltsort;})})[0][0][0]}));

将访问嵌套数组的第一个元素。