@Loiso-Pondohva
Чайник языка JS :)

Почему сумма чисел данного массива NaN?

Есть задача код, который запрашивает у пользователя числа. Программа заканчивает ввод, как только посетитель введёт пустую строку, не число или нажмёт «Отмена».
Эти числа нужно сохранить в массиве и как дополнение, в конце посчитать сумму всех чисел.
Все вроде сделал, преобразую введенные числа из строки в число, но все равно сумма их NaN. Почему, ведь в массиве численные значения?
arr = new Array();
var sum = 0;
	while(true) {
		var number = prompt("Введите число", 0);
		if (number == null || number == "" || !isFinite(number)) {
			break;
		} else {
			arr.push(+number);
			sum += arr[number];
		}  
	}
console.log(sum)
  • Вопрос задан
  • 583 просмотра
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
arr[number] обращение к элементу с индексом number. Замените на sum += +number;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
slo_nik
@slo_nik
Добрый вечер.
Вот немного подправил Ваш код, не идеально, но вроде работает.
arr = new Array();
var sum = 0;
var i = 0;
  while(true) {
    var number = prompt("Введите число", 0);
    if (number == null || number == "" || !isFinite(number)) {
      break;
    } else {
      arr.push(+number);
      sum += arr[i];
    } 
    i++; 
  }
console.log(sum)
Ответ написан
Кое что подправил, чтобы выдавал при сложении трех чисел сумму, а не строку. У вас строка

https://jsfiddle.net/c2z1wpyL/
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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