В python я мог бы сделать что-то вроде myMap = {key: [value1, value2]}
, а затем получить доступ к value2
с помощью myMap[key][1]
Можно ли сделать что-то подобное в javascript?
В python я мог бы сделать что-то вроде myMap = {key: [value1, value2]}
, а затем получить доступ к value2
с помощью myMap[key][1]
Можно ли сделать что-то подобное в javascript?
Ну, вы можете сделать это:
var myMap = { key: [ value1, value2 ] };
var array = myMap.key; // or myMap["key"]
JavaScript не имеет типа "ассоциативного массива", который сочетает поведение "map" с поведением массива, как отслеживание количества свойств. Таким образом, общая задача - использовать простой объект. В современном JavaScript сейчас (2017) существует явное средство Map
, которое позволяет использовать ключи любого типа, а не только строки, как при использовании простых объектов.
JavaScript немного глупо относится к объектной нотации, поскольку он не позволит вам использовать зарезервированные слова для ключей, если вы их не процитируете:
var myMap = { 'function': 'hello world' };
Синтаксис цитаты позволяет использовать любую строку в качестве имени свойства. Чтобы получить доступ к таким свойствам, вы должны использовать оператор [ ]
console.log(myMap["function"]); // "hello world"
Это действительно.
var myMap = {london: ['clapham', 'chelsea'], bristol:['clifton', 'redland']}
alert(myMap.london[0]);
alert(myMap['bristol'][1]);
См. этот пример на jsFiddle
Да, и синтаксис почти такой же.
var myMap = {key: ["value1", "value2"]};
alert(myMap["key"][1]); // pops up an alert with the word "value2"
Вы также можете использовать следующие обозначения:
myMap.key[1]
Короткий ответ... да...
var m = { Foo : ["Bar", "Baz"] };
alert(m.Foo[0]);
alert(m["Foo"][1]);