Невозможно вычислить с помощью array.length

Пытаюсь по времени менять цвет коробки. Я хочу вычислить следующий цвет с помощью счетчика и разделить его по модулю на количество цветов, которые у меня есть. С обычным числом это работает нормально, но если я использую Array.lenght, я получаю NaN в результате.

box = document.getElementById("box");
k = 0;
colors = ["purple", "green", "red", "orange", "yellow", "blue"];

setInterval(function() {
  console.log(colors.length); // shows 6
  box.style.backgroundColor = colors[k];
  k++;
  k = k % colors.lenght;
  // k %= 6; works fine.
  console.log(k); // shows NaN
}, 1000);
#box {
  width: 100px;
  height: 100px;
}
<div id="box"></div>

Спасибо за вашу помощь.

length! = lenght.
tkausl 13.09.2018 21:11
lenght должен быть length
Sushanth -- 13.09.2018 21:11

Опечатка в k = k % colors.lenght; »k = k % colors.length;

Roy 13.09.2018 21:11

Вы только что создали Type, это должен быть length, а не lenght, надеюсь, вы его поняли.

chintuyadavsara 13.09.2018 21:13
1
4
62
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Долгая перспектива, но может ли это быть просто орфографической ошибкой? k = k % colors.lenght; должно быть: k = k % colors.length;

... все время случается со мной

Вот почему IDE имеют смысл;)

Alex Shesterov 13.09.2018 21:12

Слишком уж верно, хотя я иногда взламываю что-то в RPi или чьей-то другой системе, и, как правило, я начинаю с простого, простого vim или текстового редактора.

Steve Hynding 13.09.2018 21:16

Это не совсем ответ на вопрос. Если у вас есть другой вопрос, вы можете задать его, нажав Задать вопрос. Вы также можете добавить награду, чтобы привлечь больше внимания к этому вопросу. - Из обзора

Mike Boutin 13.09.2018 21:51

@MikeBoutin, вы просто нажали не ту кнопку во время обзора. Это делает ответ на вопрос. Скорее всего, вы увидели вопросительный знак, просматривая отзывы, и отреагировали так, как если бы это был вопрос, размещенный в качестве ответа. Чтобы этого не произошло, рекомендую на самом деле прочитал вопрос и ответ.

Alex Shesterov 13.09.2018 22:02

@AlexShesterov это тот же ответ, что и принятый, и он заканчивается на ...happens to me all the time

Mike Boutin 14.09.2018 02:59

@MikeBoutin, да, но если вы наведете курсор на «отвечено XX часов назад», вы увидите, что этот был опубликован в 19:11:28 UTC - на 3 минуты раньше принятого. За Великую Справедливость ...

Alex Shesterov 14.09.2018 08:41

У вас colors.lenght, а не colors.length.

Ответ принят как подходящий

В вашем коде есть орфографическая ошибка. k = k % colors.lenght; должен быть k = k % colors.length; .

Другие вопросы по теме