я следующий эксперимент в браузерах консолиПочему массивы ведут себя так, когда я добавляю именованные свойства?
- Я создал новый
Array
. - Добавлено
"foo"
Array
как указано в указателе"name"
. - Добавлено
"bar"
Array
с использованием методаpush
.
5 тесты на Array
1. var myArray = []; // undefined
2. myArray["name"] = "foo"; // "foo"
3. myArray.push("bar"); // 1
4. myArray.join(", "); // "bar"
5. myArray["name"]; // "foo"
Мои вопросы (я не понимаю)
.push()
возвращает1
, который является длинаArray
, но он должен быть 2, так какArray
имеет два значения: «foo» & «bar»Тест 4 показывает, что
Array
имеет только одно значение"bar"
, но тест 5 противостоит ему, что также имеет значение"foo"
.Почему методы
Array
(push
,join
и т. Д.) Работают на парах ключ/значение?- Тогда как ассоциативный
Array
работает и как мы можем его обрабатывать (методы, свойства и т. Д.).
На самом деле, вы можете получить доступ к элементу, используя строку в качестве ключа, если строка может быть преобразован в ряд, попробуйте 'MyArray [«0»]'. – Pavlo
@ pavlo, и если да, то котенок где-то умрет. Не делай этого! Save the kitteh =) – rdodev