chore(util): 增加蛇形命名转驼峰命名(递归处理对象中的所有属性名)
This commit is contained in:
@@ -1204,5 +1204,32 @@ export default {
|
||||
(typeof qh !== 'undefined' && qh.platform === 'huawei');
|
||||
// #endif
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user