FizzBuzz возвращает пустой массив
Я не совсем уверен, почему это возвращает пустой массив, есть ли у кого-нибудь подсказки или подсказки? Любая помощь приветствуется.
function fizzBuzz() {
var array = [];
for (var i = 1; i <= 100; i++) {
if (i % 3 === 0) {
array.push("Fizz");
} else if (i % 5 === 0) {
array.push("Buzz");
} else if (i % 3 === 0 && i % 5 === 0) {
array.push("FizzBuzz");
}
return array;
}
}
fizzBuzz();
2 ответа
Вы возвращаетесь из цикла после первой итерации.
function fizzBuzz() {
var array = [];
for (var i = 1; i <= 100; i++) {
if (i % 3 === 0) {
array.push("Fizz");
} else if (i % 5 === 0) {
array.push("Buzz");
} else if (i % 3 === 0 && i % 5 === 0) {
array.push("FizzBuzz");
}
}
return array; // <- !
}
fizzBuzz();
Первая проблема, оператор return находится внутри цикла. Он вернет пустой массив после первой итерации. Вместо этого поместите оператор возврата после цикла.
Вторая проблема, вы должны проверить FizzBuzz в первом операторе if, иначе он никогда не попадет
function fizzBuzz() {
var array = [];
for (var i = 1; i <= 100; i++) {
if (i % 3 === 0 && i % 5 === 0) {
array.push("FizzBuzz");
} else if (i % 3 === 0) {
array.push("Fizz");
} else if (i % 5 === 0) {
array.push("Buzz");
}
}
return array;
}
fizzBuzz();