В python я мог бы сделать что-то вроде myMap = {key: [value1, value2]}, а затем получить доступ к value2 с помощью myMap[key][1]
Можно ли сделать что-то подобное в javascript?
Ответ 1
Ну, вы можете сделать это:
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"
Ответ 2
Это действительно.
var myMap = {london: ['clapham', 'chelsea'], bristol:['clifton', 'redland']}
alert(myMap.london[0]);
alert(myMap['bristol'][1]);