JavaScript | Почему (array.length -1)?

JavaScript | Почему (array.length -1)?

Если я попрошу вас посчитать пальцы на руке, то с какой цифры вы начнёте отcчёт? С цифры «один»? Так? Любой разумный человек на этой планете начнёт считать любые вещи с единицы.

Но разработчики языка JavaScript почему то решили начинать отcчёт «индексных коллекций» (массивов) не с единицы, а с нуля. То есть первый элемент массива будет иметь индекс отсчёта ноль (0). От этого нюанса начинает болеть голова у начинающего программиста. Он только научился считать пальцы на руках, а ему предлагают какие-то «сдвиги» в числовых рядах.

И вот однажды ученик задаётся вопросом, а почему запись в коде имеет вид — (array.length -1).

 

 

Видео инструкция

В этом видео приводится объяснение кодовой записи (array.length -1) в JavaScript. Ввод команд осуществляется в консоль браузера Google Chrome. Результат виден сразу.

Я приведу три примера:

var m1 = [1,2,3]
Массив номер 1 - JavaScript
Массив номер 1 — JavaScript

 

var m2 = [1,2,3,4,5]
Массив номер 2 - JavaScript
Массив номер 2 — JavaScript
var m3 = [1,2,3,4,5,6,7]
Массив номер 3 - JavaScript
Массив номер 3 — JavaScript

 

Посмотрите на них внимательно. Любой массив в JavaScript имеет свойство длины «length«. Это свойство хранит количество всех элементов в массиве. То есть свойство «length» считает также как и люди.

Посмотрите на значения свойства «length» во всех трёх массивах.

 

А теперь вопрос: Что общего между свойством «length» и индексом последнего элемента массива?

Индекс 2 длина 3 - JavaScript
Индекс 2 длина 3 — JavaScript
Индекс 4 длина 5 - JavaScript
Индекс 4 длина 5 — JavaScript
Индекс 6 длина 7 - JavaScript
Индекс 6 длина 7 — JavaScript

Вам не кажется, что индекс последнего элемента ЛЮБОГО массива на единицу меньше, чем значение его длины?

 

Вывод

Если мы ходим получить последний элемент из любого массива, то мы должны из длины массива вычесть единицу т. к. индексы в массиве всегда будут на единицу меньше, чем его длина. Потому что первый элемент начинается НЕ с индекса 1, а с 0.

Из-за этого происходит сдвиг.

 

Видео инструкция

В этом видео приводится пример получения последнего элемента массива JavaScript, созданного при помощи квадратных скобок. Ввод команд осуществляется в консоль браузера Google Chrome. Результат виден сразу.

 

Информационные ссылки

JavaScript | Массивы (Array)

JavaScript | Как получить последний элемент массива?

JavaScript | Как получить первый элемент массива?