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()array のみに関心があるため、外側の arrayを呼び出す必要はありませんKoordinatenpaketaufenthaltsort含まれているオブジェクトを個々のオブジェクトのプロパティの値に置き換えることにより、この配列のみを目的の出力にマップする必要があります。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 に答える