2016-11-25 107 views
0

我有兩個類MyObjectMyObjectJSON,與輔助方法以及兩者之間轉換:myObj.toJSON()MyObject.fromJSON()打字稿:: Lodash ::陣列<->對象快速查找

現在,我有2個上述類的構造,我需要進行轉換。

  1. MyObject實例的地圖,以id鍵等於:{ [id: number]: MyObject }
  2. MyObjectJSON實例的列表:MyObjectJSON[]

我怎麼能這兩種結構之間的轉換?我正在使用lodash

回答

0
let mapA: { [id: number]: MyObject } = {}; 
mapA[obj1.id] = obj1; 
mapA[obj2.id] = obj2; 
mapA[obj3.id] = obj3; 
// { 
// 1: MyObject, 
// 2: MyObject, 
// 3: MyObject 
// } 

let mapB: { [id: number]: MyObjectJSON }; 
mapB = lodash.mapValues<MyObject, MyObjectJSON>(mapA, it => it.toJSON()); 
// { 
// 1: MyObjectJSON, 
// 2: MyObjectJSON, 
// 3: MyObjectJSON 
// } 

let listB: MyObjectJSON[]; 
listB = lodash.map<MyObject, MyObjectJSON>(mapA, it => it.toJSON()); 
// [ MyObjectJSON, MyObjectJSON, MyObjectJSON ]