1

配列内のオブジェクトで配列を取得したいと思います。

元の構造:
配列 [ object, ..., object ]

var dateC = [ 
      {
      key: "2016-01-01",
      values: **[
        {city:"", country:""...},
        {...}
      ]**},
      {
      key: "2016-01-02",
      values: [
        {...},
        {...}
      ]}
]

var dateC2 = dateC.filter(function(d) { return d.key == selected; }).map(function(d) { return d.values })

上記のコードを使用して、キー「2016-01-01」を持つdateCからオブジェクトを抽出しました。

現在の構造:
配列 [配列[114] ]

var dateC2 = [ 
  {
  key: "2016-01-01",
  values: **[
    {city:"", country:""...},
    {...}
  ]**}
]

望ましい構造:
配列 [オブジェクト、...、オブジェクト]

**[{city:"", country:""...}, {...}]**

私が欲しい配列は**に含まれています

dateC2 を取得するために dateC で既にフィルターとマップを使用しているため、forEachメソッドを使用して値から配列を取得する方法がわかりません。または、元の構造から目的の構造を取得するより迅速な方法はありますか?

4

2 に答える 2

4

で単一のループを使用できますArray#reduce

var dateC2 = dateC.reduce(function(r, d) {
    return d.key == selected ? 
        r.concat(d.values):
        r;
}, []);
于 2016-07-04T08:28:24.187 に答える