如何查找和删除所有下划线,并使下划线后的下一个字母大写



我有一个带有下划线键的对象

const obj={api_key:1,is_auth:false}

我想要camelCase钥匙

const obj={apiKey:1,isAuth:false}

您可以使用正则表达式映射键,将下划线和后面的字符替换为大写字符。类似于:

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,}([a-z])/g, (a, b) => b.toUpperCase()), value])
);
console.log(keys2CamelCase(obj));

如果您还想删除尾随下划线,请使用

key.replace(/_{1,}([a-z])|_$/g, (a, b) => b && b.toUpperCase() || ``)

RegEx可以更改大小写,然后必须将转换后的密钥放入对象中:

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];
}
}

内部if负责保存obj中任何应而不是遵循Snake Case的密钥。

最新更新