javascript - D3.js 汇总嵌套数据

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

请帮帮我

我有一个这样的 json 文件。

 [
{
    "Paket": [
        {
            "farbe": "#ff0000",
            "Koordinaten": [
                {
                    "paketaufenthaltsort": "469\/31 A 1; A 3; A 4",
                    "y": "5",
                    "x": "0"
                },
                {
                    "paketaufenthaltsort": "469\/31 A 1; A 3; A 4",
                    "y": "5",
                    "x": "150"
                },
                {
                    "paketaufenthaltsort": "469\/31 A 1; A 3; A 4",
                    "y": "0",
                    "x": "150"
                }
            ],
            "Paketnummer": "11000005"
        }
    ],
    "offset": "5",
    "referenzzeitraum": "1440"
}
 ]

现在我想要一个包含“paketaufenthaltsort”所有值的数组。

所以我尝试了以下方法:

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

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

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

但我想要的是:

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

请帮帮我

最佳答案

不需要在外部数组上调用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一个工作示例。

关于javascript - D3.js 汇总嵌套数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31657054/

相关文章:

javascript - 如何在Chrome扩展内容脚本中获取D3节点的数据

javascript - 如何模拟用户创建的窗口属性?

javascript - 在 Chrome 上添加了多个类,但在 Edge 或 IE 上未添加

javascript - 从 .then() 函数执行名为 `fat arrow`

C - 将一个文件保存到两个单独的数组并打印每个元素

c++ - 如何制作节点数组?

java - C++/Java - int(0 - 1023) 到字节数组(仅限两个字节)

javascript - 每 5 秒自动刷新一个 DIV 代码不工作

charts - 如何在 d3.js 中用线覆盖在堆叠条形图上排列 x 轴

javascript - 无需for循环访问多维数据,使圆弧数据沿径向