w3resource

JavaScript: Replace the names of multiple object keys with the values provided

JavaScript fundamental (ES6 Syntax): Exercise-14 with Solution

Write a JavaScript program to replace the names of multiple object keys with the values provided.

  • Use Object.keys() in combination with Array.prototype.reduce() and the spread operator (...) to get the object's keys and rename them according to keysMap.

Sample Solution:

JavaScript Code:

//#Source https://bit.ly/2neWfJ2 
const rename_keys = (keysMap, obj) =>
  Object.keys(obj).reduce(
    (acc, key) => ({
      ...acc,
      ...{ [keysMap[key] || key]: obj[key] }
    }),
    {}
  );
const obj = { name: 'Bobo', job: 'Programmer', shoeSize: 100 };
console.log("Original Object");
console.log(obj);
console.log("-------------------------------------");
result = rename_keys({ name: 'firstName', job: 'Actor' }, obj);
console.log("New Object");
console.log(result);

Sample Output:

"Original Object"
[object Object] {
  job: "Programmer",
  name: "Bobo",
  shoeSize: 100
}
"-------------------------------------"
"New Object"
[object Object] {
  Actor: "Programmer",
  firstName: "Bobo",
  shoeSize: 100
}

Flowchart:

flowchart: Replace the names of multiple object keys with the values provided

Live Demo:

See the Pen javascript-fundamental-exercise-14 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus

Previous: Write a JavaScript program to convert the length of a given string in bytes.
Next: Write a JavaScript program to return the minimum-maximum value of an array, after applying the provided function to set comparing rule.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



JavaScript: Tips of the Day

Chunks an array into n smaller arrays

Example:

const tips_chunkIntoN = (arr, n) => {
  const size = Math.ceil(arr.length / n);
  return Array.from({ length: n }, (v, i) =>
    arr.slice(i * size, i * size + size)
  );
}
console.log(tips_chunkIntoN([1, 2, 3, 4, 5, 6, 7,8], 4)); 

Output:

[[1,2],[3,4],[5,6],[7,8]]