标签:const 下划线 JS 命名 key 互转 return data newData
原理
小驼峰命名法:camelCase
下划线命名法:snake_case
通过递归的办法,遍历出对象里的所有属性名,然后正则替换
代码
下划线 → 小驼峰
// 将 sanke 命名转 camel 命名
function snake2camel (data) {
if (typeof data !== 'object' || !data) { return data }
if (Array.isArray(data)) { return data.map(item => snake2camel(item)) }
const newData = {}
for (const key in data) {
const newKey = key.replace(/_([a-z])/g, (p, m) => m.toUpperCase())
newData[newKey] = snake2camel(data[key])
}
return newData
}
小驼峰 → 下划线
// 将 camel 命名转 sanke 命名
function camel2snake (data) {
if (typeof data !== 'object' || !data) { return data }
if (Array.isArray(data)) { return data.map(item => camel2snake(item)) }
const newData = {}
for (const key in data) {
const newKey = key.replace(/([A-Z])/g, (p, m) => `_${m.toLowerCase()}`)
newData[newKey] = camel2snake(data[key])
}
return newData
}
标签:const,下划线,JS,命名,key,互转,return,data,newData 来源: https://www.cnblogs.com/conne/p/15855406.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。