tengo un objeto con teclas de subrayado
const obj = { api_key: 1, is_auth: false }
quiero obtener las claves de camelCase
const obj = { apiKey: 1, isAuth: false }
RegEx puede cambiar la carcasa, y luego las claves convertidas deben colocarse en el objeto:
const obj = { api_key: 1, is_auth: false } // your sample data for(let key in obj) { let newKey = key.replace(/[^a-zA-Z0-9]+(.)/g, (m, chr) => chr.toUpperCase()); if(newKey!=key) { obj[newKey] = obj[key]; delete obj[key]; } } El if interno se encarga de preservar cualquier clave en obj que no deba seguir a Snake Case.
Puede mapear las teclas usando una expresión regular para reemplazar los guiones bajos y el siguiente carácter con un carácter en mayúsculas. Algo como:
const obj = { api_key: 1, is_true: false, all___under_scores: true, _test: "Tested", test_: "TestedToo (nothing to replace)", }; const keys2CamelCase = obj => Object.fromEntries( Object.entries(obj) .map(([key, value]) => [key.replace(/_{1,}([az])/g, (a, b) => b.toUpperCase()), value]) ); console.log(keys2CamelCase(obj));Si también desea eliminar los guiones bajos finales, use
key.replace(/_{1,}([az])|_$/g, (a, b) => b && b.toUpperCase() || ``)