var x : IHash = {};
x['key1'] = 'value1';
x['key2'] = 'value2';
console.log(x['key1']);
// outputs value1
console.log(x['key2']);
// outputs value2
辞書を繰り返し使用することができます。
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(){
// slicing the array will return it by value so users cannot accidentally
// start playing around with your array
return values.slice();
}
}
ソリューションがうまくいかなければならない理由についての説明を追加することは、スタックオーバーフローの良い習慣です。詳細については、[How To Answer](// stackoverflow.com/help/how-to-answer)を参照してください。 –