Чтение и запись элементов массива
Доступ к элементам массива осуществляется с помощью оператора []
.
Слева от скобок должна присутствовать ссылка на массив.
Внутри скобок должно находиться произвольное выражение, возвращающее неотрицательное целое значение. Этот синтаксис пригоден как для чтения, так и для записи значения элемента массива.
var a = ["world"]; // Создать массив с одним элементом
var value = a[0]; // Прочитать элемент 0
a[1] = 3.14; // Записать значение в элемент 1
i = 2;
a[i] = 3; // Записать значение в элемент 2
a[i + 1] = "hello"; // Записать значение в элемент 3
a[a[i]] = a[0]; // Прочитать элементы 0 и 2, записать значение в элемент 3
Массивы являются специализированной разновидностью объектов. Квадратные скобки, используемые для доступа к элементам массива, действуют точно так же, как квадратные скобки, используемые для доступа к свойствам объекта. Интерпретатор JavaScript преобразует указанные в скобках числовые индексы в строки – индекс 1 превращается в строку "1", – а затем использует строки как имена свойств. В преобразовании числовых индексов в строки нет ничего особенного: то же самое можно проделывать с обычными объектами:
o = {}; // Создать простой объект
o[1] = "one"; // Индексировать его целыми числами
console.log(o) // {1: "one"}
Следует четко отличать индексы в массиве от имен свойств объектов. Все индексы являются именами свойств, но только свойства с именами, представленными целыми числами в диапазоне от 0 до 232–2 являются индексами. Все массивы являются объектами, и вы можете добавлять к ним свойства с любыми именами. Но только свойства, являющиеся индексами влияют на длину массива.
Например:
var a = [];
a[0] = 10;
a[1] = 20;
a[-1] = 30;
a['b'] = 40;
console.log(a) // [10, 20]
console.log(a.length) // 2
console.log(a['b']) // 40
console.log(a[-1]) // 30