Я хочу заполнить пустое array
классической игрой fizzbuzz (числа от 1 до 100, когда число делится на 3, печатает «Fizz», делится на 5, печатает «Buzz», делится на 3 и 5, печатает «Fizzbuzz»). Проблема в том, что когда я пишу код, как в первой части кода ниже, сохраняя мой array[i]
в более удобной переменной, мой оператор if-else if
не работает, печатаются только обычные числа; но когда я использую array[i]
вместо переменной, все работает нормально, как вы можете видеть во второй части кода, где 'Fizz', 'Buzz', 'FizzBuzz' перезаписывают обычные числа. Они должны быть одинаковыми, верно?
Первая часть кода с переменной вместо array[i]
var numberArray = [];
var number = 0
for (var i = 0; i < 100; i++) {
number += 1;
thisNumber = numberArray[i];
numberArray.push(number);
if (number %3 ==0 && number %5 ==0) {
thisNumber = 'FizzBuzz';
} else if ( number %3 ==0 ) {
thisNumber = 'Fizz';
} else if ( number %3 ==0 ) {
thisNumber = 'Buzz';
}
}
console.log(numberArray);
Вторая часть кода с массивом[i] вместо переменной
var numberArray = [];
var number = 0
for (var i = 0; i < 100; i++) {
number += 1;
numberArray.push(number);
if (number %3 ==0 && number %5 ==0) {
numberArray[i] = 'FizzBuzz';
} else if ( number %3 ==0 ) {
numberArray[i] = 'Fizz';
} else if ( number %3 ==0 ) {
numberArray[i] = 'Buzz';
}
}
console.log(numberArray);