Длина массива

Все массивы, как созданные с помощью конструктора Array(), так и определенные с помощью литерала массива, имеют специальное свойство length, устанавливающее количество элементов в массиве. Поскольку массивы могут иметь неопределенные элементы, более точная формулировка звучит так: свойство length всегда на единицу больше, чем самый большой номер элемента массива. В отличие от обычных свойств объектов, свойство length массива автоматически обновляется, оставаясь корректным при добавлении новых элементов в массив. Это обстоятельство иллюстрирует следующий фрагмент:

var a = new Array();// a.length == 0 (ни один элемент не определен)

a = new Array(10);// a.length == 10 (определены пустые элементы 0–9)

a = new Array(1,2,3);// a.length == 3 (определены элементы 0–2)

a = [4, 5];// a.length == 2 (определены элементы 0 и 1)

a[5] = _1;// a.length == 6 (определены элементы 0, 1 и 5)

a[49] = 0; // a.length == 50 (определены элементы 0, 1, 5 и 49)

Помните, что индексы массива должны быть меньше 232–1, т. е. максимально возможное значение свойства length равно 232–1.

Наиболее часто свойство length используется для перебора элементов массива в цикле:

var fruits = ["манго", "банан", "вишня", "персик"];

for(var i = 0; i < fruits.length; i++)

alert(fruits[i]);

Конечно, в этом примере предполагается, что элементы массива расположены непрерывно и начинаются с элемента 0. Если это не так, перед обращением к каждому элементу массива нужно проверять, определен ли он:

for(var i = 0; i < fruits.length; i++)

if (fruits[i] != undefined) alert(fruits[i]);

Аналогичный подход может использоваться для инициализации элементов массива, созданного вызовом конструктора Array():

var lookup_table = new Array(1024);

for(var i = 0; i < lookup_table.length; i++)

lookup_table[i] = i * 512;

Свойство length массива доступно как для чтения, так и для записи. Если установить свойство length в значение, меньшее текущего, массив укорачивается до новой длины; любые элементы, не попадающие в новый диапазон индексов, отбрасываются, и их значения теряются.

Если сделать свойство length большим, чем его текущее значение, в конец массива добавляются новые неопределенные элементы, увеличивая массив до нового размера.

Обратите внимание: хотя объектам могут быть присвоены элементы массива, объекты не имеют свойства length. Это свойство и его специальное поведение – наиболее важная особенность, свойственная массивам. Другие особенности, отличающие массивы от объектов, – это различные методы, определяемые классом Array.








Дата добавления: 2015-08-01; просмотров: 842;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.