@olya_097

Как мы num получаем, ведь в цикле есть только i и arr.length?

Дан инпут. В него вводится текст. По потери фокуса узнайте количество слов в этом тексте.
<input type="text" id="num" value="">
<p id="result"></p>  



var elem = document.getElementById('num');
elem.addEventListener('blur', func);

function func() {
	var num = 0;
	var str = elem.value;
	var arr = str.split(' ');
	for (var i = 0; i < arr.length; i++) {
		num += 1;
 	}
	var p = document.getElementById('result');
	p.innerHTML = num;
}
  • Вопрос задан
  • 162 просмотра
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
С каждым шагом цикла num увеличивается на 1.

Вообще цикл здесь не нужен. Вместо for{ ... } достаточно num = arr.length; или вообще всю функцию
сократить
function func() {
  var num = this.value.split(' ').length;
  document.getElementById('result').innerHTML = num;
}


Ещё хорошо бы отрезать лишние пробелы по краям строки и считать несколько пробелов как один:
function func() {
  var num = this.value.trim().split(/\s+/).length;
  document.getElementById('result').innerHTML = num;
}

Фиддл.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы