我有一个函数来大写我用作属性的字符串中每个单词的第一个字母。
但是我不明白为什么我需要在for循环中声明拆分的长度,而不是直接使用它。
这是可以工作的代码:
function LetterCapitalize(str) {
wordarr = str.split(" ");
for (var i = 0, n = wordarr.length; i < n; i++) {
wordarr[i] = wordarr[i][0].toUpperCase() + wordarr[i].slice(1);
}
str = wordarr.join(" ");
return str;
}我的问题是:我不明白为什么这样做是可行的:
for (var i = 0, n = wordarr.length; i < n; i++) {...但这不是:
for (var i = 0, i < wordarr.length; i++) {...谢谢你们给我的任何建议。
发布于 2018-12-22 05:29:21
Forloop有三个语句。初始化、条件和递增。每条语句用';‘分隔。但是在forloop中,初始化和条件部分是用',‘而不是';’分隔的。Javascript认为它们都属于一条语句。
下面的内容应该可以用
对于(var i= 0;i< wordarr.length;i++) {
发布于 2018-12-22 06:09:04
根据MDN的说法,"for“循环可以有三个块:
for ([initialization]; [condition]; [final-expression])语句,但在本例中使用",“而不是";”。
这个应该非常适合你
function LetterCapitalize(str) {
wordarr = str.split(" ");
for (var i = 0, n = wordarr.length; i < n; i++) {
wordarr[i] = wordarr[i][0].toUpperCase() + wordarr[i].slice(1);
}
str = wordarr.join(" ");
return str;
}
https://stackoverflow.com/questions/53890881
复制相似问题