2

请帮我

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

请帮我

4

2 回答 2

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以获取工作示例。

于 2015-07-27T21:33:53.890 回答
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]}));

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

于 2015-07-27T15:36:34.163 回答