chore(util): 增加蛇形命名转驼峰命名(递归处理对象中的所有属性名)

This commit is contained in:
2026-01-10 13:44:50 +08:00
parent 9ed337b59a
commit 7f54666629

View File

@@ -1204,5 +1204,32 @@ export default {
(typeof qh !== 'undefined' && qh.platform === 'huawei'); (typeof qh !== 'undefined' && qh.platform === 'huawei');
// #endif // #endif
return true; return true;
},
/**
* 蛇形命名转驼峰命名
* @param {string} str 蛇形命名字符串
* @returns {string} 驼峰命名字符串
*/
snakeToCamel(str) {
return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
},
/**
* 蛇形命名转驼峰命名(递归处理对象中的所有属性名)
* @param {Object} obj 包含蛇形命名字符串属性的对象
* @returns {Object} 驼峰命名字符串属性的对象
*/
snakeToCamelForObj(obj) {
if (typeof obj !== 'object' || obj === null) return obj;
if (Array.isArray(obj)) return obj.map(this.snakeToCamelForObj.bind(this));
const newObj = {};
for (const key in obj) {
if (Object.hasOwnProperty.call(obj, key)) {
const newKey = this.snakeToCamel(key);
newObj[newKey] = this.snakeToCamelForObj(obj[key]);
}
}
return newObj;
} }
} }