От автора: приветствую вас, друзья. Продолжаем работать с массивами в JavaScript. В этой статье мы познакомимся с так называемыми многомерными массивами в JavaScript, а также рассмотрим некоторые особенности работы с массивами в языке JavaScript.
В массив, как мы уже знаем, можно положить любое значение: строку или число. Также в массив при желании можно сохранить и объект:
1 2 |
var names = ['John', 'James', 'Jane', {name1: 'Иванов', name2: 'Петров', name3: 'Сидоров'}]; console.log(names); |
Получить доступ к любому свойству объекта — не сложно:
1 |
console.log(names[3].name1); // Иванов |
Возможность хранить объекты в массиве используется не часто, но такая возможность есть. Кроме этого мы можем хранить в массиве вложенные массивы. В этом случае массив называется многомерным, то есть массивом с более чем одним уровнем. Вот как это выглядит на практике:
1 2 3 4 5 |
var names = [ ['Иван', 'Петр'], ['Иванов', 'Петров'] ]; console.log(names); |
Здесь мы в первом элементе, с ключом 0, родительского массива храним имена, а во втором, с ключом 1, храним фамилии. Выведем фамилии и имена, соответствующие им:
1 2 |
console.log(names[0][0] + ' ' + names[1][0]); // Иван Иванов console.log(names[0][1] + ' ' + names[1][1]); // Петр Петров |
Если имен и соответствующих им фамилий много, тогда для вывода их всех нам, конечно же, понадобится цикл. Примерно так можно решить задачу:
1 2 3 |
for(var i = 0; i < names.length; i++){ console.log(names[0][i] + ' ' + names[1][i]); } |
И, наконец, поговорим о некоторых нюансах работы с массивами, в частности о свойстве length. Как вы помните, данное свойство возвращает длину массива. Иногда я мог говорить, что length вернет количество элементов массива. На самом деле это не совсем так, и говорил я количестве элементов исключительно для того, чтобы вам было понятнее на первых порах.
На самом деле свойство length возвращает последний индекс массива + 1. Вы можете сказать, что это и будет количеством элементов массива, коль нумерация массива начинается с нуля. Все правильно. Вот только нумерация массива не обязательно может начинаться с нуля. Пример:
1 2 |
var names = []; names[5] = 'John'; |
Мы объявили массив и положили в него всего один элемент с ключом 5. Если сейчас мы посчитаем длину массива, то с удивлением обнаружим, что она равна не 1, а 6:
1 |
console.log(names.length); // 6 |
JavaScript считает не только значимый элемент, но и все прочие, незаполненные элементы, начиная с 0. Учтите это, если столкнетесь с подобным массивом.
Еще одной интересной особенностью свойства length является то, что через него мы можем влиять на сам массив, уменьшая его длину. Простой пример:
1 2 3 4 |
var names = ['John', 'James', 'Jane', 'Jake']; console.log(names); names.length = 2; console.log(names); |
Таким образом мы сократили количество элементов массива до двух, прочие элементы при этом были удалены. Отсюда мы можем взять простой способ удаления всех элементов массива, сделав его пустым при необходимости:
1 2 3 |
var names = ['John', 'James', 'Jane', 'Jake']; names.length = 0; console.log(names); // [] |
Если вы хотите больше узнать о JavaScript, тогда рекомендую обратить свое внимание на уроки по JavaScript и отдельный курс по языку JavaScript. Удачи!