Соблюдал весь синтаксис, логика, вроде, выстроена правильно, однако не выдаёт sum. Подскажите, где я ошибся. Javascript
var arr = [];
var newArray = [];
var sum
for (var i = 0; 1; i++) {
arr[i] = Number(prompt("Введите число: "));
if (arr[i] > 30000) {
arr.splice(i, 1)
i = i - 1
continue;
}
if (arr[i] == 0) {
arr.splice(i, 1);
break;
} else if (i == 999) {
break;
}
}
console.log(arr)
for (var i = 0; i < arr.lenght; i++) {
if (arr[i] > 9 && arr[i] < 100 && arr[i] % 5 == 0) {
sum += arr[i]
}
}
console.log(sum)
Ответы (1 шт):
Автор решения: Rynay
→ Ссылка
Вы увеличиваете сумму, но не указали начальное значение. Вы не проверяете числа на NaN (Хотя, может быть, Вам и их собирать надо, кто знает?). Опечатка в свойстве length. Не понятна логика сначала добавления, а потом удаления из массива, лучше проверять перед добавлением. Не используете newArray.
Простите, но я переписала Ваш код. Я правильно уловила ход Ваших мыслей?) Дайте знать, если я потеряла суть задачи.
var arr = [];
var sum;
while(true){
if(arr.length === 999) break;
var input = +prompt("Введите число: ");
if(input === 0) break;
if(input > 30000) continue;
if(!isNaN(input)) arr.push(input);
}
console.log(arr)
sum = arr.reduce((acc, num) => {
if(9 < num && num < 100 && num % 5 === 0){
return acc + num;
} else {
return acc;
}
}, 0)
console.log(sum);