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

标签 javascript arrays string character capitalization

我正在尝试编写一个函数,将例如 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);

关于javascript - 试图将字符串数组中的第一个字符大写,为什么这不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7743582/

相关文章:

javascript - CSS 透明窗口

javascript - 骰子滚入数组

arrays - 数组表达式语法错误

java - 用正则表达式替换 Java 中大括号 { } 之间的所有文本

python - Django 模板中的下标字符串

javascript - Mongoose find 使用expressjs查找if语句错误

javascript - 带有正则表达式模式的html5输入类型数字

javascript - 在 Vue 应用程序之外使用 Vue 电话号码组件

javascript - 从 json 中检索唯一值

C - 连接字符串