Files
2018-10-16 21:32:40 +05:30

3.0 KiB
Raw Blame History

title, localeTitle
title localeTitle
Catch Off By One Errors When Using Indexing Устранение ошибок при использовании индексирования

Устранение ошибок при использовании индексирования

основы

Из-за того, как работают индексы JavaScript, firstFive имеет пять элементов, но индексируется от 0 до 4 !

console.log(len); // 5 
 console.log(firstFive[0]); // 1 
 /**/ 
 console.log(firstFive[4]); // 5 
 console.log(firstFive[5]); // undefined 

Это должно дать вам достаточно, чтобы понять пределы firstFive . Направляйте ваше внимание на цикл. Что оно делает? Вы можете попробовать отладить его, чтобы узнать!

отладка

Вам предоставляется этот код:

  for (let i = 1; i <= len; i++) { 
    console.log(firstFive[i]); 
  } 

Чтобы отладить этот фрагмент кода, используйте console.clear() . Каким было бы лучшее место для этого? Ответ прямо перед заявлением for !

  console.clear(); 
  for (let i = 1; i <= len; i++) { 
    console.log(firstFive[i]); 
  } 

Консольный выход:

  Console was cleared. 
  2 
  3 
  4 
  5 
  undefined 

Анализ

Изучите выход. В этих условиях петля сначала печатает элемент, расположенный на 1 ... который равен 2! Он также пытается распечатать элемент с индексом 5, который не undefined .

Это можно считать пунктом этой задачи. Сохраните console.log() и console.clear() . Они помогут вам понять, как работает ваш код.

Решение

Самый простой способ исправить это - изменить условия for (). Запустите i в 0. Также цикл не должен выполняться для i == 5. Другими словами, связь между i и len должна быть false при i == 5. Этого можно достичь, используя i < len (Is 5 <len? false, и цикл не будет выполнен!).

  for (let i = 0; i < len; i++) { 

Счастливое кодирование! : Компьютер:

Ресурсы