Skip to content

Instantly share code, notes, and snippets.

@daviddias
Last active August 25, 2017 10:28
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save daviddias/f8997fb0bdf4dc1c3543 to your computer and use it in GitHub Desktop.
Save daviddias/f8997fb0bdf4dc1c3543 to your computer and use it in GitHub Desktop.
function renameKeys (dict, keyMap) {
return _.reduce(dict, function (newDict, val, oldKey) {
var newKey
if (keyMap[oldKey]) {
newKey = keyMap[oldKey]
} else {
newKey = oldKey
}
newDict[newKey] = val
return newDict
}, {})
}
function renameKeys (dict, keyMap) {
return _.reduce(dict, remap, {})
function remap (newDict, val, oldKey) {
var newKey
if (keyMap[oldKey]) {
newKey = keyMap[oldKey]
} else {
newKey = oldKey
}
if (val instanceof Object) {
newDict[newKey] = _.reduce(val, remap, {})
} else {
newDict[newKey] = val
}
return newDict
}
}
@davidlondono
Copy link

davidlondono commented Feb 1, 2017

function renameKeys (dict, keyMap) {

  function remap (newDict, val, oldKey) {
    var newKey;

    if (_.isFunction(keyMap)) {
      newKey = keyMap(oldKey);
    } else {
      newKey = keyMap[oldKey];
    }
    newKey = newKey || oldKey;

    if (val instanceof Object) {
      newDict[newKey] = _.reduce(val, remap, {})
    } else {
      newDict[newKey] = val
    }
    return newDict
  }
  return _.reduce(dict, remap, {});
}

@cksachdev
Copy link

This converts nested array to an Object. Here is the codepen link for your reference:
https://codepen.io/cksachdev/pen/NgZMYQ
Object structure

var obj = {
    children: [{
        id: "children id",
        label: "children label",
        type: 4,
        uniqueId: "children unique id" 
    }],
    id: "something",
    label: "Some label here...",
    type: 5,
    uniqueId: "This is unique."
};

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment