var x : IHash = {};
x['key1'] = 'value1';
x['key2'] = 'value2';
console.log(x['key1']);
console.log(x['key2']);
Если вы хотите затем перебрать свой словарь, вы можете использовать.
Object.keys(x).forEach((key) => {console.log(x[key])});
Object.keys возвращает все свойства объекта, поэтому он отлично работает для возврата всех значений из объектов в стиле словаря.
Вы также упомянули хэш-карту в своем вопросе, приведенное выше определение предназначено для интерфейса в стиле словаря. Следовательно, ключи будут уникальными, а значения - нет.
Вы можете использовать его как хэш-набор, просто назначив одно и то же значение ключу и его значению.
если вы хотите, чтобы ключи были уникальными и с потенциально разными значениями, вам просто нужно проверить, существует ли ключ на объекте, прежде чем добавлять к нему.
var valueToAdd = 'one';
if(!x[valueToAdd])
x[valueToAdd] = valueToAdd;
или вы можете создать свой собственный класс, который будет действовать как своего рода хэш-набор.
Class HashSet{
private var keys: IHash = {};
private var values: string[] = [];
public Add(key: string){
if(!keys[key]){
values.push(key);
keys[key] = key;
}
}
public GetValues(){
return values.slice();
}
}