Camelify
by sammy
JavaScript
var o = {
test_ing: 1,
foo_bar: {
camel_case: 2
},
foo: [{bar_baz: 'ha'}]
};
function enCamelify(o, overwrite) {
Object.keys(o).reduce(function (p, c) {
if (typeof p[c] === 'object') enCamelify(p[c], overwrite);
if (Array.isArray(o)) return p;
var k = c.replace(/_([a-z])/g, function (s, v) {
return v.toUpperCase();
});
if (k === c) return p;
if (!overwrite && p[k] != null) throw new Error('Key collision! Possible data loss.');
p[k] = p[c];
delete p[c];
return p;
}, o);
}
enCamelify(o);
console.log(o);