Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Объясните, нубу джаваскрипта, поведени массива. (https://javascript.ru/forum/misc/10234-obyasnite-nubu-dzhavaskripta-povedeni-massiva.html)

B~Vladi 24.06.2010 15:07

Цитата:

Сообщение от Kolyaj
Когда-нибудь допишу

Аха, поделится ссылкой не забудь:)
Я точно помню, что как минимум в двух источниках видел несколько абзацев по этой теме. И твой, Alive Substance, с добавлением элемента в "середину" массива, и твой, Kolyaj, с определением пустых ключей. Причем length ведёт себя как раз логично.
Цитата:

Сообщение от Kolyaj
Нет.

Как нет ты же сам определил эти элементы, соответственно и длина сходится с определением.

Kolyaj 24.06.2010 15:09

Цитата:

Сообщение от B~Vladi
Как нет ты же сам определил эти элементы

Нет там элементов. Элемент только один, с индексом 0. Больше элементов нет, а length равен 7 в IE и 6 в остальных браузерах.

B~Vladi 24.06.2010 15:11

Цитата:

Сообщение от Kolyaj
Нет там элементов. Элемент только один, с индексом 0

Ни-фи-га. Иначе была бы синтаксическая ошибка. Причем последняя запятая не добавляет элемент, а в ИЕ из-за этого падает скрипт.

Kolyaj 24.06.2010 15:11

Цитата:

Сообщение от subzey
Ушел читать ман

Было бы это в манах-то :)

Kolyaj 24.06.2010 15:13

Цитата:

Сообщение от B~Vladi
Иначе была бы синтаксическая ошибка.

С чего бы вдруг ошибка-то?

var a = [1,,,,];
alert([a.length, 0 in a, 1 in a, 2 in a, 3 in a]);

B~Vladi 24.06.2010 15:19

Цитата:

Сообщение от Kolyaj
С чего бы вдруг ошибка-то?

Ну с того, что синтаксис поддерживает такую запись, определяя пустые элементы. Если бы не поддерживал - другое дело.
А к чему этот код приведён был? Там всё вполне понятно и логично.
in вроде как свойство смотрит?

Kolyaj 24.06.2010 15:21

Цитата:

Сообщение от B~Vladi
определяя пустые элементы

Не пустые элементы, а пропуски элементов.

Цитата:

Сообщение от B~Vladi
А к чему этот код приведён был?

Код показывает, что в массиве существует только нулевой индекс, а length при этом равно 4(5).

B~Vladi 24.06.2010 15:24

Цитата:

Сообщение от Kolyaj
а length при этом равно 4(5)

Дк вот почему так решили написать... Типа всё-таки происходит добавление. Наверно чтобы не травмировать неокрепшие умы:)
Да, кста, осёл в своем духе.


Часовой пояс GMT +3, время: 11:48.