我有帶下劃線鍵的物件
常量 obj = { api_key: 1, is_auth: false }
我想拿到駝峰式鑰匙
const obj = { apiKey: 1, isAuth: false }
uj5u.com熱心網友回復:
您可以使用正則運算式映射鍵,將下劃線和后面的字符替換為大寫字符。就像是:
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() || ``)
uj5u.com熱心網友回復:
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 的任何鍵。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/504549.html
標籤:javascript 目的 骆驼包
