2017-02-04 156 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);