2017-08-24 293 views
-1

我有一个json与几个对象数组。lodash映射几个对象数组

{ 
    "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, 
    }] 
    }] 
} 

,我的目标是让每个 “id_pk” 的ID使用_.map()lodash

和我的代码如下所示。这是一个正确的格式如何获得ID?

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

工作的呢?你得到了什么结果? –

+0

http://imgur.com/a/naZJG这种结果我现在得到 –

+0

http://imgur.com/a/k0Ltv我的目标是这样或0:1,2 | 1:3,4 | 2:5,6 |逗号 –

回答

0

你可以通过减少外部阵列和映射booking阵列的所有id得到所有id值并加入ID为一个新对象。

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);