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();
}
}
स्रोत
2017-02-13 19:02:49
स्टैक ओवरफ़्लो पर यह अच्छा अभ्यास है कि आपके समाधान को क्यों काम करना चाहिए, इस बारे में स्पष्टीकरण जोड़ें। अधिक जानकारी के लिए [कैसे जवाब दें] (// stackoverflow.com/help/how-to-answer) पढ़ें। –