2017-08-24 290 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);