Как получить значение переменной? - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь выяснить сценарий, который добавляет 1 при каждом запуске в переменную, , а затем консоль записывает общее количество раз.

for (let i = 1; i <= limitFizzBuzz; i++) {
// Count the FizzBuzzes
let amountOfFizzBuzzes;
amountOfFizzBuzzes = amountOfFizzBuzzes += 1;
console.log(amountOfFizzBuzzes);
}

Когда я пытался запустить это в al oop, я получаю: enter image description here

Что я здесь не так делаю?

Ответы [ 3 ]

1 голос
/ 22 февраля 2020

Во-первых, более простая версия первой проблемы:

let num;
num += 1;
console.log(num);
  • num += 1 - это правильный оператор, который добавляет 1 к значению num и сохраняет результат обратно в num.

  • console.log(num); является правильным оператором, который записывает значение num в консоль.

  • Но let num; не дать начальное значение для num. Когда переменная не инициализируется значением в JavaScript, она получает значение undefined. Выполнение математики для undefined, как будто это число, приводит к NaN, что вы и видите.

Итак, фиксированная версия более простого кода дает начальное значение num, как ноль:

let num = 0;
num += 1;
console.log(num);

Следующая проблема - это область действия. Если вы объявите переменную внутри l oop, это будет новая переменная каждый раз. Вместо этого вы хотите использовать одну и ту же переменную для каждой итерации и сохранить ее значение, поэтому переместите объявление за пределы:

let amountOfFizzBuzzes = 0;

for (let i = 1; i <= limitFizzBuzz; i++) {
    amountOfFizzBuzzes += 1;
    console.log(amountOfFizzBuzzes);
}
0 голосов
/ 22 февраля 2020

@ Моррисон абсолютно прав. Просто инициализируйте amountOfFizzBuzzes выше для l oop.

let amountOfFizzBuzzes =0;
for (let i = 1; i <= 10; i++) {
// Count the FizzBuzzes
 amountOfFizzBuzzes++;
//amountOfFizzBuzzes +=1;
console.log(amountOfFizzBuzzes);
}
0 голосов
/ 22 февраля 2020

сначала вы определяете переменную let amountOfFizzBuzzes; внутри al oop, так что она должна быть вне цикла, секунда, если вам нужно увеличить число, это правильный способ сделать это

let amountOfFizzBuzzes=0;
for (let i = 1; i <=limitFizzBuzz; i++) {
// Count the FizzBuzzes
amountOfFizzBuzzes+= 1;
console.log(amountOfFizzBuzzes);
}

.

.

//....
limitFizzBuzz = 5;


//if you want to start from zero & increment it X times
let amountOfFizzBuzzes = 0;
for (let i = 1; i <= limitFizzBuzz; i++) {
  // Count the FizzBuzzes
  amountOfFizzBuzzes += 1;
  console.log(amountOfFizzBuzzes);
}
...