var x : IHash = {};
x['key1'] = 'value1';
x['key2'] = 'value2';
console.log(x['key1']);
console.log(x['key2']);
Daha sonra sözlüğünüzde yinelemek isterseniz, kullanabilirsiniz.
Object.keys(x).forEach((key) => {console.log(x[key])});
Object.keys, bir nesnenin tüm özelliklerini döndürür, bu nedenle sözlük stili nesnelerden tüm değerleri döndürmek için iyi çalışır.
Sorunuzda bir karma haritadan da bahsetmiştiniz, yukarıdaki tanım sözlük stili bir arayüz içindir. Bu nedenle anahtarlar benzersiz olacak, ancak değerler olmayacak.
Aynı değeri anahtara ve onun değerine atayarak bir hashset gibi kullanabilirsiniz.
Anahtarların benzersiz ve potansiyel olarak farklı değerlere sahip olmasını istiyorsanız, anahtarın nesneye eklemeden önce nesnede var olup olmadığını kontrol etmeniz yeterlidir.
var valueToAdd = 'one';
if(!x[valueToAdd])
x[valueToAdd] = valueToAdd;
ya da bir çeşit hashset olarak hareket etmek için kendi sınıfınızı oluşturabilirsiniz.
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();
}
}