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