将用驼峰命名的字符串转为下划线命名(面试题)

实现将对象下所有key由驼峰/Pascal转成下划线分割:

复制代码
toSnakeCase({
   UserName: 'toutiao',
    group: {
       GroupName: 'douyin'
   }        
}) => {
    user_name: 'toutiao',
    group: {
        group_name: 'douyin'
    }
};
复制代码
stringObject.replace(regexp/substr,replacement)
参数描述
regexp/substr

必需。规定子字符串或要替换的模式的 RegExp 对象。

请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。

replacement 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

eplacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。

字符替换文本
$1、$2、...、$99 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
$& 与 regexp 相匹配的子串。
$` 位于匹配子串左侧的文本。
$' 位于匹配子串右侧的文本。
$$ 直接量符号。

解决方法:

//方法 
objectHumpToLine(obj) {
        var newObj = new Object()
        for (let key in obj) {
            newObj[key.replace(/([A-Z])/g, "_$1").toLowerCase()] = obj[key]
        }
        return newObj
    }

 

posted @   奔跑的太阳花  阅读(891)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2019-10-15 WEB引入Google思源黑体
2018-10-15 vue2.0 日历日程表 ,可进行二次开发.
点击右上角即可分享
微信分享提示