Тема: foreach в js
Показать сообщение отдельно
  #7 (permalink)  
Старый 06.04.2014, 10:33
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Сам не силён, и если дезинформировал поправите меня! Если в ключе присутствует не цыфра, то это - Объекты.
Не совсем. В javascript могут быть и пронумерованные, и ассоциативные, и смешанные массивы, с объектами дела обстоят точно так же - ключом может выступать как число, как строка, как и то и другое. При этом массивы и объекты - разные сущности. Хоть они в большинстве случаев и взаимозаменяемы, рекомендуется все же использовать их по своему назначению - объекты для сложных конструкций со словесными индексами, массивы - для пронумерованных списков. JSON поступает именно так, да.

Вот простенькое сравнение поведения массивов и объектов.
Массивы:
var myarray = []; //Короткая форма объявления массива
myarray[1] = "firstvalue";
myarray["key"] = "secondvalue";
console.log(myarray);
console.log(myarray.toString());

Объекты:
var myobject= {}; //Короткая форма объявления объекта
myobject[1] = "firstvalue";
myobject["key"] = "secondvalue";
console.log(myobject);
console.log(myobject.toString());


Еще деталь - массивы, в отличие от объектов, имеют набор нативных функций вроде push и split. Эти функции наследуются от общего предка массивов, и через перебор по for in их не увидишь. Вот здесь подробности.

Последний раз редактировалось Erolast, 06.04.2014 в 19:45.
Ответить с цитированием