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