#javascript #hashmap
#javascript #hashmap
Вопрос:
Я хочу объявить hashmap в javascript с помощью <String, String array>
вместо <String,Integer>
. Как это можно сделать?
Ответ №1:
Если вы планируете использовать объект массива javascript, имейте в виду, что доступ к индексу массива возможен только через целые числа.
var arr = [];
arr['person'] = 'John Smith';
alert(arr.length); // returns 0, not an array anymore;
и
var arr = [];
arr[0] = 'John Smith';
alert(arr.length); // returns 1, still an array;
Вышеуказанное работало бы в javascript, но var arr
на самом деле это больше не объект array. Вы не можете отсортировать его, например.
Итак, для вас hashmap вы могли бы сделать
var map = new Object();
map['person'] = [];
map['person']['test'] = 'myvalue';
map['person']['test2'] = 'myvalue2';
alert(map['person']['test']);
Комментарии:
1. Вам лучше использовать
var arr = {};
2. Вам лучше не использовать
new Object()
, это не так оптимизировано, как{}
(я знаю, микрооптимизации не стоят хлопот), и кто-то, возможно, переопределилObject
.