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