羊肉串改为驼峰命名

题目:

例如:user-english-name 变为驼峰 userEnglishName

function transString(){

// 完善代码

}

transString("user-english-name ") // 输出:userEnglishName

解答:
方法一:
function transString(str){
            let arr=str.split('-');
            let str1;
            for(let i=1;i<arr.length;i++){
                arr[i]=arr[i].replace(arr[i].charAt(0),arr[i].charAt(0).toUpperCase() );
            }
            str1=arr.join('');
            return str1;
        }

涉及到的方法:

  • split()方法

语法:str.split(separator, limit) separator:指定的分隔符(如果忽略此参数,将会把整个字符串作为数组的第一个(也是唯一一个)元素返回) limit:指定返回数组的最大长度

  • replace()方法

语法:str.replace(oldSubstr, newSubstr) 用newSubstr来替换oldSubstr,返回更新后的字符串,这个更新的只是相同字母的第一个,例如:abcabc,在对a进行替换时,只会作用于第一个a

拓展:replaceAll()方法:将所有的同一个字母进行替换,例如:abcabc,将a进行替换时,两个a都会被替换

  • charAt(index):获取到字符串的第index+1个字符
  • toUpperCase()方法

语法:str.toUpperCase() 不需要参数

功能:用于将字符串转换为全大写形式

注意:该方法不会修改原始字符串,而是返回一个新的字符串。如果需要修改原始字符串,可以使用赋值操作。

相关:toLowerCase()方法:将字符串转换为全小写形式

  • join()方法

语法:arr.join([separator]) 没有参数,默认以逗号作为分隔符

功能:用一个指定的分隔符将数组中的所有元素链接起来

方法二:
var transString = function transString(s) {
    let chars = s.split('-');
    // 循环遍历,将每个单词首字母大写,接着与后面字符拼接
    for(let i = 1; i < chars.length; i++) {
        arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1);
    }
    return chars.join('');
}

涉及到的方法:

  • subString()方法:

语法:str.substring(indexStart, [indexEnd]) indexStart:表示从何处开始提取字符串中的字符。 indexEnd(可选): 表示从何处结束提取字符串中的字符(不包含该下标)

方法三:
function transString(str) {
        let arr = str.split('-');
        let result = '';
        for (let i = 1; i < arr.length; i++) {
            arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);
            result += arr[i];
        }
        return arr[0] + result;
    }

涉及到的方法:

  • slice方法:

str.slice(beginIndex, [endIndex]) 从末尾开始计数是从-1、-2...这样数

arr.slice(beginIndex, [endIndex]) 从头开始计数是0,1.....

功能:用于提取一个字符串和一个数组的一部分,并返回一个新的字符串和数组

与substring()的区别:

1、slice()既可以处理字符串,也可以处理数组,substring只能处理字符串

2、处理负数下标时:slice() 方法会将负数下标视为从字符串末尾开始计数,而 ,substring() 方法会将负数下标视为 0

方法四:
function transString(str) {
            return str.trim().split('-').map((word, index) => {     //word:split('-') 方法返回的每一个子字符串                                    
                if (index === 0) {                                   //index是word在数组中的索引值
                    return word;
                } else {
                    return word[0].toUpperCase() + word.slice(1);
                }
            }).join('');
        }

涉及到的方法:

  • trim()方法:用于去除字符串两端的空白字符

两个变体方法:

  1. trimStart()(或 trimLeft()):只去除字符串开头的空白字符
  2. trimEnd()(或 trimRight()):只去除字符串结尾的空白字符

方法五:
function transString(str) {
      return str.trim().split('-').reduce((acc, curr, index) => {   //acc:上一次回调函数的返回值   curr:当前值   index:当前值的索引
                if (index === 0) {
                    return curr;
                } else {
                    return acc + curr[0].toUpperCase() + curr.slice(1);
                }
            }, '');
            }

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

khatung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值