lodash映射了几个对象数组

时间:2017-08-24 09:49:31

标签: javascript ecmascript-6 lodash

我有一个带有几个对象数组的json。

{
  "results":[{
    "id_pk": "1",
    "bookings": [{
      "id": 1,
      "id": 2,
    }]
  },{
    "id_pk": "2",
    "bookings": [{
      "id": 3,
      "id": 4,
    }]
  },{
    "id_pk": "3",
    "bookings": [{
      "id": 5,
      "id": 6,
    }]
  }]
}

我的目标是获得每个&#34; id_pk&#34;使用lodash的<。map()

我的代码看起来像这样。这是一个正确的格式如何获取id?

_.map(results, (r) => _.map(r.bookings, 'id') )

1 个答案:

答案 0 :(得分:0)

您可以通过减少外部数组并映射id id数组来获取所有booking值,并加入新对象的ID。

&#13;
&#13;
var data = { results: [{ id_pk: "1", bookings: [{ id: 1 }, { id: 2 }] }, { id_pk: "2", bookings: [{ id: 3 }, { id: 4 }] }, { id_pk: "3", bookings: [{ id: 5 }, { id: 6 }] }] },
    ids = data.results.reduce((r, a, i) => (r[i] = a.bookings.map(b => b.id).join(), r), {});

console.log(ids);
&#13;
&#13;
&#13;