Ответ 1
Вы используете Array
как "ассоциативный массив", которого нет в JavaScript. Вместо этого используйте Object
({}
).
Если вы собираетесь продолжить с массивом, поймите, что toString()
присоединится ко всем свойствам нумерованные, разделенным запятой. (так же, как .join(",")
).
Свойства, подобные a
и b
, не будут использоваться с использованием этого метода, поскольку они не находятся в индексе число <. (т.е. "тело" массива)
В JavaScript Array наследует от Object
, поэтому вы можете добавлять и удалять на нем свойства, как и любой другой объект. Таким образом, для массива нумерованные свойства (они являются технически просто строками под капотом) - это то, что учитывается в методах типа .toString()
, .join()
и т.д. Ваши другие свойства все еще существуют и очень доступны.:)
Прочтите документацию Mozilla для получения дополнительной информации о массивах.
var aa = [];
// these are now properties of the object, but not part of the "array body"
aa.a = "A";
aa.b = "B";
// these are part of the array body/contents
aa[0] = "foo";
aa[1] = "bar";
aa.toString(); // most browsers will say "foo,bar" -- the same as .join(",")