[Home] > Snippets  > Languages  > JavaScript  > Objects  >  Immutably rename object keys

Immutably rename object keys

JavaScript

const renameKeys = (keysMap, obj) => Object.keys(obj).reduce((acc, key) => ({ ...acc, ...{ [keysMap[key] || key]: obj[key] } }), {})

Examples

const obj = { a: 1, b: 2, c: 3 }
const keysMap = { a: 'd', b: 'e', c: 'f' }
renameKeys(keysMap, obj) // { d: 1, e: 2, f: 3 }