Lodash 4, jQuery 3

Lodash 4, jQuery 3

HTML

<script src="https://cdn.jsdelivr.net/lodash/4.17.4/lodash.min.js"></script>

JavaScript

const renameKeysOfOneObject = (object, keyMappings) => {
  return _.reduce(object, function(result, value, key) {
    key = keyMappings[key] || key;
    result[key] = value;
    return result;
  }, {});
};

const correctRenameKeys = (objects, keyMappings) => {
    const keysRenamer = object => renameKeysOfOneObject(object, keyMappings);
    return _.map(objects, keysRenamer);
};

const wrongRenameKeys = (objects, keyMappings) => {
    const keysRenamer = _.partialRight(renameKeysOfOneObject, keyMappings);
    return _.map(objects, keysRenamer);
};

const object = {keyToBeRenamed: 'someValue'};
const objects = [object];
const keyMapping = {keyToBeRenamed: 'newKeyName'};

const correctlyRenamed = correctRenameKeys(objects, keyMapping);
const wronglyRenamed = wrongRenameKeys(objects, keyMapping);

console.assert(_.isEqual(correctlyRenamed, wronglyRenamed), 
               "The two objects should be equal. " + 
               "The 'keyToBeRenamed' key should have been renamed to 'newKeyName'.");
console.log(correctlyRenamed);
console.log(wronglyRenamed);