【问题标题】:D3.js roll up nested dataD3.js 汇总嵌套数据
【发布时间】:2015-10-17 20:56:23
【问题描述】:

请帮帮我

我有一个这样的 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"]

请帮帮我

【问题讨论】:

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


    【解决方案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 以获取工作示例。

    【讨论】:

      【解决方案2】:

      你可以使用:

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

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

      【讨论】:

        猜你喜欢
        • 2016-04-20
        • 1970-01-01
        • 2011-10-30
        • 1970-01-01
        • 2016-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-23
        相关资源
        最近更新 更多