Raf*_*del 9 javascript arrays string character capitalization
我是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));
Run Code Online (Sandbox Code Playgroud)
Poi*_*nty 16
您必须实际重新分配数组元素:
for(var i = 1 ; i < newArr.length ; i++){
newArr[i] = newArr[i].charAt(0).toUpperCase();
}
Run Code Online (Sandbox Code Playgroud)
"toUpperCase()"函数返回新字符串但不修改原始字符串.
您可能需要检查以确保newArr[i]
首先是空字符串,以防您获得带有两个连续破折号的输入字符串.
编辑 - 注意到SO贡献者@lonesomeday正确地指出你还需要重新粘贴每个字符串的其余部分:
newArr[i] = newArr[i].charAt(0).toUpperCase() + newArr[i].substr(1);
Run Code Online (Sandbox Code Playgroud)
在for
循环中,您需要替换值newArr[i]
而不是简单地评估它:
for(var i = 1 ; i < newArr.length ; i++){
newArr[i] = newArr[i].charAt(0).toUpperCase() + newArr[i].substr(1);
}
Run Code Online (Sandbox Code Playgroud)
小智 6
这是我的ES6解决方案。这是一个示例,其中将星期几存储在数组中,并使用for... of
循环将其大写。
const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
for (let day of days) {
day = day.charAt(0).toUpperCase() + day.substr(1);
console.log(day);
}
Run Code Online (Sandbox Code Playgroud)
这是文档的链接:for ...循环文档
小智 5
const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
days.map( a => a.charAt(0).toUpperCase() + a.substr(1) );
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
32458 次 |
最近记录: |