Почему мне нужно объявить длину в forloop и не использовать ее напрямую? - PullRequest
0 голосов
/ 22 декабря 2018

ребята.

Я сделаю все просто, как только смогу

У меня есть функция для ввода первой буквы каждого слова в строке, которую я использую в качестве атрибута.

Но я не могу понять, почему мне нужно объявить в forloop длину разбиения, а не использовать его напрямую

Этот код работает

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++) {...

Спасибо за любой совет, который вы, ребята, можете дать мне.

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Согласно 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; 

}
0 голосов
/ 22 декабря 2018

Forloop имеет три утверждения.Инициализация, условие и приращение.Каждое утверждение разделяется символом «;».Но в вашем forloop части инициализации и условия разделяются символом ',' вместо ';'.Javascript считает, что они оба принадлежат одному выражению.

Следующее должно работать

для (var i = 0; i

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...