আসুন একটি সাধারণ ক্লাস সেট আপ করি যা আমরা এই সব মেথডগুলো ডিফাইন করতে ব্যবহার করব। আমরা হ্যাশ টেবিল সংরক্ষণ করার জন্য একটি কন্টেইনার অবজেক্ট তৈরি করব এবং টেবিলটি প্রদর্শনের জন্য একটি display ফাংশন তৈরি করব। মনে রাখবেন কলিশন রেজোলিউশনের জন্য আমরা চেইনিং ব্যবহার করব।
display ফাংশনটি টেবিলের প্রতিটি এন্ট্রি (হ্যাশ করা ভ্যালু) নেয় এবং সেটির সাথে জড়িত সব পেয়ার প্রিন্ট করে।
উদাহরণ
আমরা কি-ভ্যালু পেয়ার সংরক্ষণের জন্য প্রোটোটাইপে একটি নতুন ক্লাসও তৈরি করব।
class HashTable {
constructor() {
this.container = [];
// কন্টেইনারের সাথে খালি অ্যারে পপুলেট করুন
// যা কলিশন হলে আরও উপাদান যোগ করতে ব্যবহার করা যাবে
for(let i=0; i < 11; i++ ) {
this.container.push([]);
}
display() {
this.container.forEach((value, index) => {
let chain = value
.map(({ key, value }) => `{ ${key}: ${value} }`)
.join(" --> ");
console.log(`${index}: ${chain}`);
});
}
hash(key) {
return key % 11;
}
}
HashTable.prototype.KVPair = class {
constructor(key, value) {
this.key = key;
this.value = value;
}
}
}
আমরা display মেথডে ডিস্ট্রাকচারিং ব্যবহার করছি যা বয়লারপ্লেট কোড এড়াতে সাহায্য করে।