首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我需要在forloop中声明长度,而不是直接使用它?

问为什么我需要在forloop中声明长度,而不是直接使用它?
EN

Stack Overflow用户
提问于 2018-12-22 05:19:11
回答 2查看 37关注 0票数 0

我有一个函数来大写我用作属性的字符串中每个单词的第一个字母。

但是我不明白为什么我需要在for循环中声明拆分的长度,而不是直接使用它。

这是可以工作的代码:

代码语言:javascript
复制
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; 
}

我的问题是:我不明白为什么这样做是可行的:

代码语言:javascript
复制
  for (var i = 0, n = wordarr.length; i < n; i++) {...

但这不是:

代码语言:javascript
复制
  for (var i = 0, i < wordarr.length; i++) {...

谢谢你们给我的任何建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-22 05:29:21

Forloop有三个语句。初始化、条件和递增。每条语句用';‘分隔。但是在forloop中,初始化和条件部分是用',‘而不是';’分隔的。Javascript认为它们都属于一条语句。

下面的内容应该可以用

对于(var i= 0;i< wordarr.length;i++) {

票数 0
EN

Stack Overflow用户

发布于 2018-12-22 06:09:04

根据MDN的说法,"for“循环可以有三个块:

代码语言:javascript
复制
for ([initialization]; [condition]; [final-expression])

语句,但在本例中使用",“而不是";”。

这个应该非常适合你

​

代码语言:javascript
复制
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; 

}

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53890881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档