Длина массива не соответствует индексу

1

var index = 0;
var length = ["a", "b", "c", "d", "e"].length;
var interval = setInterval(function() {
	if (index < length) {
		console.log(index);
		console.log(length);
		index++;
	} else {
       clearInterval(interval);
    }
}, 1000);

Как это исправить? Таким образом, он очистит интервал 5: 5, а не 4: 5

  • 2
    Массив всегда начинается с 0, если не указано иное.
  • 0
    Начните индекс с 1.
Показать ещё 6 комментариев
Теги:

4 ответа

0

хммм

var index = 0;
var length = ["a", "b", "c", "d", "e"].length;
var interval = setInterval(function() {
	if (index < length) {
                ++index;
		console.log(index);
		console.log(length);
	} else {
       clearInterval(interval);
    }
}, 1000);
  • 0
    Там нет ничего, чтобы объяснить, так как я просто переместил индекс ++ и поместил его перед console.log
  • 0
    @Osakr хорошо, вы перешли с index++ на ++index задаваясь вопросом, в чем причина этого, поскольку здесь это не имеет значения.
Показать ещё 1 комментарий
0

Я думаю, это все, что вам нужно

var index = 0;
var length = ["a", "b", "c", "d", "e"].length;
var interval = setInterval(function() {
	if (index <= length) {
		console.log(index);
		console.log(length);
		index++;
	} else {
       clearInterval(interval);
    }
}, 1000);
0

Вы можете проверить инкрементный index после вывода.

Если index больше или равен length очистите интервал.

var index = 0,
    length = ["a", "b", "c", "d", "e"].length,
    interval = setInterval(function() {
        console.log(index, length);
        if (++index >= length) {
            clearInterval(interval);
        }
    }, 1000);
0

длина дает количественное значение. Это 5, но индекс начинается с нуля.

var index = 0;
var length = ["a", "b", "c", "d", "e"].length;
var interval = setInterval(function() {
	if (index < length) {
		console.log(index + 1);
		console.log(length);
		index++;
	} else {
       clearInterval(interval);
    }
}, 1000);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню