Рассмотрим этот пример кода Javascript:
a = new Array();
a['a1']='foo';
a['a2']='bar';
b = new Array(2);
b['b1']='foo';
b['b2']='bar';
c=['c1','c2','c3'];
console.log(a);
console.log(b);
console.log(c);
Результаты в консоли Firebug следующие:
Для a («[]» нужно было развернуть, нажав кнопку «+»):
[]
a1 "foo"
a2 "bar"
Для b:
[undefined, undefined]
Для c:
["c1", "c2", "c3"]
Мои вопросы:
ПРИМЕЧАНИЕ: Firebug Google Chrome отображает только [] для массива 'a', без возможности его расширения.
РЕДАКТИРОВАТЬ: Хорошо, похоже, что массивы в Javascript имеют только числовые ключи, поэтому добавление строки в качестве имени ключа делает объект из массива. Но почему jQuery .each не работает с ним?
$.each(a, function ()
{
alert ('derp');
})
Этот код, добавленный к скрипту, не генерирует никаких предупреждений.