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