🚀手撕大厂常见手写题——下划线转驼峰

🚀手撕大厂常见手写题——下划线转驼峰

前言

有时候面试的时候,我们也容易看到这类题

面试官

请你实现

 let s = 'hello_world' => helloWorld

这就是接下来要介绍的下划线转驼峰了

正则写法

function underlineToCamel(str) {
    return str.replace(/_(\w)/g, function (match, letter) {
        return letter.toUpperCase();
    });
}

let s = 'hello_world'
console.log(underlineToCamel(s))  // helloWorld

这里考察的就是我们平常对正则语法的了解程度怎么样了

分析

    1. 匹配下划线后面的一个单词字符
    • / / 之间的部分是正则表达式的主体,用于匹配字符串中的模式。
    • g 表示全局匹配模式,即在整个字符串中查找所有匹配的模式,而不是只查找第一个匹配。
    • (\w) 表示匹配单个字母、数字或下划线字符,并将其作为一个捕获组,方便后面replace函数第二个参数(回调函数)使用。
    • replace 函数的第一个参数是一个正则表达式 /_(\w)/g,它表示查找字符串中所有以 _ 开头,后面紧跟一个单词字符的子字符串,并将其替换为一个新的字符串。
    1. 将匹配到单词字符转换成大写返回
    • replace 函数的第二个参数是一个替换函数,它接收两个参数:匹配到的字符串第一个分组(即单词字符)。在这个替换函数中,将第一个分组(即单词字符)转换为大写字母,并返回该大写字母,用于替换原来的子字符串。

所以正则没啥难的,难的就是正则的语法我们还不太熟悉,如果实在不想背正则的api的同学怎么办呢?

NO PROBLEM !

就看常规的解法吧

常规解法

function underlineToCamel(str) {
    var arr = str.split('_');
    for (var i = 1; i < arr.length; i++) {
        arr[i] = arr[i][0].toUpperCase() + arr[i].slice(1);
    }
    return arr.join('');
}

let s = 'hello_world'
console.log(underlineToCamel(s))  // helloWorld

分析

    1. 使用字符串的 split() 方法将字符串按照下划线分隔为一个数组
    • 字符串split()后 arr = [ 'hello', 'world' ]
    1. 然后使用循环遍历数组中的每个元素(除了第一个元素),将每个元素的首字母转换为大写形式,并将其与剩余部分拼接起来
    • 'W' + 'orld' => 'World'
    1. 最终使用字符串的 join() 方法将所有数组元素拼接为一个字符串,返回一个驼峰命名法的字符串。
    • [ 'hello', 'World' ] => helloWorld

有没有感觉这种方法好像更简单易懂一点。但是为了满足面试官的胃口,我们肯定是要做好更充足的准备比较好,两种方法也都要掌握一下,有备无患

小结

这就是我这次的分享了,希望可以帮助到屏幕前的你~

本文正在参加「金石计划」

原文链接:https://juejin.cn/post/7212878846290313275 作者:大眼睛图图

(0)
上一篇 2023年3月21日 下午7:54
下一篇 2023年3月21日 下午8:04

相关推荐

发表回复

登录后才能评论