Skip to content

Instantly share code, notes, and snippets.

@NorikDavtian
Last active July 10, 2020 18:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save NorikDavtian/c11d72879b6ac35358fbcb9bd660d481 to your computer and use it in GitHub Desktop.
Save NorikDavtian/c11d72879b6ac35358fbcb9bd660d481 to your computer and use it in GitHub Desktop.
let obj = {
"name": "john",
"Age": "21",
"sex": "male",
"place": {"state": "ca"},
"cats": [{"name": "toby"}, {"name": "wiskers"}]
};
let capitalize = (s) => {
if (typeof s !== 'string') return '';
return s.charAt(0).toUpperCase() + s.slice(1);
};
let allKeysToCapCase = (obj) => {
let output = {};
for (i in obj) {
if (Object.prototype.toString.apply(obj[i]) === '[object Object]') {
output[capitalize(i)] = allKeysToCapCase(obj[i]);
} else if (Object.prototype.toString.apply(obj[i]) === '[object Array]') {
output[capitalize(i)] = obj[i].map(x => allKeysToCapCase(x));
} else {
output[capitalize(i)] = obj[i];
}
}
return output;
};
let o = allKeysToCapCase(obj);
// {"Name":"john","Age":"21","Sex":"male","Place":{"State":"ca"},"Cats":[{"Name":"toby"},{"Name":"wiskers"}]}
JSON.stringify(o);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment