2017-02-04 165 views
1

我似乎總是有這個問題,我需要在源和目標的對象佈局之間進行映射。JavaScript庫來映射對象?

E.g.

我的形式可能有諸如

{ 
    field1: 123, 
    field2: "test" 
} 

數據,但我的API將期望的數據是:

{ 
    apiCol1: 123, 
    apiCol2: "test" 
} 

顯然,每次都可以手動執行此操作。然而,不是重新發明輪子,有沒有一個本地JS工具或JS庫來映射兩個不同的對象模式的給定一個字段映射?

+0

爲什麼不換的形式?順便說一句,要求圖書館是這樣。 –

+1

http://stackoverflow.com/questions/32452014/change-key-name-in-javascript-object – hackerrdave

+0

可能的重複你只是想重新命名鍵? – hackerrdave

回答

4

您可以創建一個函數,這樣

var schema = { 
 
    field1: 'apiCol1', 
 
    field2: 'apiCol2', 
 
}; 
 

 
function map(schema, obj) { 
 
    return Object.keys(obj).reduce((a, k) => { 
 
    a[schema[k]] = obj[k]; 
 
    return a; 
 
    }, {}); 
 
} 
 

 
var result = map(schema, { 
 
    field1: 123, 
 
    field2: "test" 
 
}); 
 

 
console.log(result);