编程语言
首页 > 编程语言> > javascript – 尝试将字符串数组中的第一个字符大写,为什么这不起作用?

javascript – 尝试将字符串数组中的第一个字符大写,为什么这不起作用?

作者:互联网

我是Javascript的初学者.我正在尝试编写一个将list-style-image转换为listStyleImage的函数.

我想出了一个功能,但它似乎无法正常工作.有人能指出我这里的问题吗?

var myStr = "list-style-image";

function camelize(str){
    var newStr = "";    
    var newArr = [];
    if(str.indexOf("-") != -1){
        newArr = str.split("-");
        for(var i = 1 ; i < newArr.length ; i++){
            newArr[i].charAt(0).toUpperCase();
        }       
        newStr = newArr.join("");
    }
    return newStr;
}

console.log(camelize(myStr));

解决方法:

您必须实际重新分配数组元素:

    for(var i = 1 ; i < newArr.length ; i++){
        newArr[i] = newArr[i].charAt(0).toUpperCase();
    }       

“toUpperCase()”函数返回新字符串但不修改原始字符串.

您可能需要检查以确保newArr [i]首先是空字符串,以防您获得带有两个连续破折号的输入字符串.

编辑 – 注意到SO贡献者@lonesomeday正确地指出你还需要重新粘贴每个字符串的其余部分:

         newArr[i] = newArr[i].charAt(0).toUpperCase() + newArr[i].substr(1);

标签:capitalization,javascript,arrays,string,character
来源: https://codeday.me/bug/20191006/1858017.html