如何使用纯 JavaScript 将对象键从蛇形命名法递归转换为骆驼命名法,而不依赖于 Lodash 等外部库。以下是仅适用于对象第一级的尝试。最好的方法是什么?
const obj = {
key_first: 'firstVal',
key_second: 'secondVal',
key_third: null,
nested_obj: {
nested_one: 'nested 1 value',
nested_two: 'nested 2 value'
},
nested_arr: [{
nested_obj_one: 'nested obj val 1'
}, {
nested_obj_two: 'nested obj val 2'
}, {
level_3_nested: [{
level_3_key: 'level 3 value',
level_3_another_key: 'another level 3 value'
}]
}]
};
const renameKeys = obj => Object
.entries(obj)
.reduce((acc, [key, val]) => {
const modifiedKey = key.replace(/_([a-z])/g, g => g[1].toUpperCase());
return ({
...acc,
...{ [modifiedKey]: val },
});
}, {});
console.log(renameKeys(obj));
Update:添加了值为 null 的键。