Как создать ассоциативный массив в JavaScript
![Как создать ассоциативный массив в JavaScript](/images/articles/javascript-associative-array.jpg)
Не так давно мне потребовалось на JavaScript создать ассоциативный массив. Удивительным образом, он мне раньше никогда не был нужен в JavaScript. Я полез искать в Интернет, как его сделать. И был очень удивлён, что огромное количество людей пишут, что это невозможно, в JavaScript его нет. Благо мой многолетний опыт подсказывал мне, что они несут бред. Поэтому, в конце концов, я узнал, как создать ассоциативный массив в JavaScript, о чём и поведаю в данной статье.
Ниже написан код, в котором создаётся ассоциативный массив, добавляется потом ещё один элемент и, наконец, массив перебирается через цикл:
<script type="text/javascript">
var array = {'Name': 'Michael', 'Age': '22', 'Country': 'Russia'}; // Создаём ассоциативный массив
array["add"] = 15; // Добавим ещё элемент
/* Перебор ассоциативного массива и вывод ключей и их значений */
for (var i in array)
alert("Ключ = " + i + "; Значение = " + array[i]);
</script>
В этой статье мы рассмотрели создание ассоциативных массивов, их изменение, а также полный перебор через цикл for. Лично я использовал ассоциативные массивы в JavaScript лишь однажды, но знать о такой возможности нужно обязательно.
-
-
Михаил Русаков
Комментарии (10):
"Благо мой многолетний опыт подсказывал мне, что они несут бред." Ну почему же бред? alert(array instanceof Array) // false alert(array instanceof Object) // true
Ответить
Поддерживая Севу я хочу вот что добавить: В js вообще нет массивов как таковых. Все типы данных в js: число, строка, объект, булевые типы, null, undefined. Массивы (индексные и ассоциативные) являются объектами, с промежуточным прототипом array, который предостовляет набор методов и свойств для работы с ними. Также Михаил, вы ошиблись с примером, в этом примере показывается именно создание объекта. Соответственно те люди говорили правду. Мое подтвержденное опытом мнение: в js ассоциативных массивов как таковых НЕТ(только объекты)
Ответить
Ясно, не знал, что подобные массивы - это всего лишь объекты. В любом случае, пусть они называются как угодно, главное, что их можно использовать, как ассоциативные массивы.
Ответить
Добрый День Михаил Русаков, Идея очень интересная, но вот как из этого массива вывести значения в <body><select> что бы получить вот это: <option value="Name">Michael</option> Может Вы подскажите как выводятся эти значения.
Ответить
Массивы тут не причём. Вывести можно через document.write() или innerHTML, заранее должна быть готова строка со всеми option.
Ответить
Эти значения — свойства объекта; выводятся соответственно: array.name, array.age и так далее.
Ответить
А как вывести значение одно, зная ключ? и наоборот зная значение — вывести ключ
Ответить
onenglar Ключ по значению можно вывести только перебором, а значение - obj[key];
Ответить
Ох уж эти пхпэшники. Ассоциативный массив в JS создать нельзя! Да и незачем их создавать, так как есть объекты, в статье речь как раз о них. array = {} - это создание объекта! Что равносильно array = new Object(). Кому нужны методы из прототипа Array: пожалуйста пользуйтесь (для метода concat) - [].concat.call(obj1, obj2). Получите массив из двух объектов.
Ответить
А зачем огород городить <pre> var arr = { "key0" : { "idName": "#doughnutChart", "text" : "TEXT"}, "key1" : { "idName": "#doughnutChart1", "text" : "TEXT"}, "key2" : { "idName": "#doughnutChart2", "text" : "TEXT"}, "key3" : { "idName": "#doughnutChart3", "text" : "TEXT"}, } </pre> Прекрасно работает! Такое ощущение, что Михаил Юрьевич уж больно много выпендривается, хочет показаться одним знайкой среди тупоголовых баранов
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.