কম্পিউটার

জাভাস্ক্রিপ্ট সেট:নতুনদের জন্য একটি গাইড

জাভাস্ক্রিপ্টে সেটগুলি কীভাবে ব্যবহার করবেন

আপনার কাছে কি ডেটার একটি তালিকা আছে যা শুধুমাত্র অনন্য মান ধারণ করবে? এখানেই জাভাস্ক্রিপ্ট সেট ডেটা টাইপ সত্যিই উজ্জ্বল হয়। এটি একটি নতুন ধরনের বস্তু যা আপনাকে অনন্য মানগুলির একটি সংগ্রহ তৈরি করতে দেয়; একটি সেটের মধ্যে কোন অনুলিপি অনুমোদিত নয়।

এই গাইডে, আমরা সেটগুলি কী, সেগুলি কীভাবে কাজ করে এবং কখন সেগুলি কার্যকর হতে পারে সে সম্পর্কে কথা বলতে যাচ্ছি৷ আমরা জাভাস্ক্রিপ্টে উপলব্ধ প্রতিটি সেট পদ্ধতির কয়েকটি উদাহরণের মধ্য দিয়ে চলে যাব।

একটি সেট কি?

একটি সেট হল মানগুলির একটি সেট যাতে ডুপ্লিকেট থাকতে পারে না। এই ডেটা টাইপটি ECMAScript 6-এ চালু করা হয়েছিল। উল্লেখযোগ্যভাবে, সেটগুলি অন্যান্য অনেক প্রোগ্রামিং ভাষার একটি বৈশিষ্ট্য।

তালিকাগুলি দরকারী কারণ তারা আপনাকে একাধিক মান সঞ্চয় করতে দেয়। তালিকাগুলি ডুপ্লিকেট মান সংরক্ষণ করতে সমর্থন করে, যা অগণিত পরিস্থিতিতে কার্যকর হতে পারে।

উদাহরণস্বরূপ, আপনি যদি একটি কফি শপে করা অর্ডারগুলির একটি তালিকা সংরক্ষণ করেন তবে আপনাকে ডুপ্লিকেট মানগুলি সঞ্চয় করতে সক্ষম হতে হবে। দুই গ্রাহক একই পানীয় অর্ডার করতে পারেন।

এমন কিছু উদাহরণ রয়েছে যেখানে আপনি একটি তালিকায় শুধুমাত্র অনন্য মান সঞ্চয় করতে চান। সেখানেই আপনি সেট অবজেক্ট ব্যবহার করতে চান। সেটের মান শুধুমাত্র একবার প্রদর্শিত হতে পারে।

জাভাস্ক্রিপ্টে, একটি সেট অন্য যেকোনো বস্তুর মতো ঘোষণা করা হয়। আসুন একটি সেট তৈরি করি যা স্থানীয় চা ঘরে গ্রাহকদের দ্বারা রিপোর্ট করা পছন্দের কেকগুলির একটি তালিকা সংরক্ষণ করে:

let cakes = new Set();
console.log(cakes)

আমাদের কোড ফিরে আসে:Set [] . আমরা এইমাত্র একটি সেট তৈরি করেছি। এই মুহূর্তে এর কোনো মান নেই, আপনি আমাদের কোডের আউটপুট থেকে দেখতে পাচ্ছেন; আমরা পরবর্তীতে সেগুলি যোগ করব।

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় কাটিয়েছে।

ডিফল্ট মান সহ একটি সেট শুরু করুন

সেটগুলি একটি অ্যারে, স্ট্রিং বা অন্য পুনরাবৃত্তিযোগ্য থেকে শুরু করা যেতে পারে। এটি দরকারী কারণ এর মানে হল যে আপনাকে আপনার সেটে ম্যানুয়ালি মান যোগ করতে হবে না; আপনি বিদ্যমান থেকে কাজ করতে পারেন।

নিম্নলিখিত তালিকা বিবেচনা করুন:

let cake_list = ["Lemon Cake", "Carrot Cake", "Strawberry Cheesecake"];

এই মানগুলি বর্তমানে একটি অ্যারেতে সংরক্ষিত আছে। সেগুলিকে একটি সেটে রূপান্তর করতে, যখন আমরা একটি নতুন সেট অবজেক্ট তৈরি করি তখন আমরা আমাদের অ্যারে পাস করতে পারি:

let cakes = new Set(cake_list);
console.log(cakes)

আমাদের কোড ফিরে আসে:

Set(3) ["Lemon Cake", "Carrot Cake", "Strawberry Cheesecake"]

একটি সেটে মান যোগ করা

সেট অবজেক্টটি add() নামে একটি পদ্ধতির সাথে আসে যা একটি সেটে আইটেম যোগ করা সহজ করে তোলে। একটি সেটে একটি আইটেম যোগ করতে ব্যবহৃত পদ্ধতির নামটি মনে রাখাও সহজ:add() .

ধরা যাক যে আমরা স্থানীয় বেকারিতে বিক্রি করা কেকের তালিকায় "বোস্টন ক্রিম পাই" যোগ করতে চাই। চলুন add() ব্যবহার করি এই মান যোগ করার পদ্ধতি:

cakes.add("Boston Cream Pie");
console.log(cakes);

আমাদের কোড ফিরে আসে:

Set(4) ["Lemon Cake", "Carrot Cake", "Strawberry Cheesecake", "Boston Cream Pie"]

আমাদের সেটে এখন চারটি বস্তু রয়েছে। আপনি যদি একটি আইটেম যোগ করার চেষ্টা করেন যা ইতিমধ্যেই একটি সেটে আছে, সেই আইটেমটি যোগ করা হবে না। সেট ডুপ্লিকেট মান সঞ্চয় করতে পারে না।

একটি সেটে একটি মান বিদ্যমান কিনা তা পরীক্ষা করা হচ্ছে

আমাদের কেকের তালিকায় "বোস্টন ক্রিম পাই" আছে কিনা তা পরীক্ষা করতে হবে। এটি কেকের তালিকায় একটি নতুন সংযোজন ছিল এবং বেকার দুবার চেক করতে চায় আমরা এটি যুক্ত করেছি।

সেখানেই has() পদ্ধতি আসে। has() পদ্ধতি আপনাকে একটি সেট আছে কিনা তা পরীক্ষা করার অনুমতি দেয় একটি নির্দিষ্ট মান। আবার, পদ্ধতিটির একটি নাম রয়েছে যা মনে রাখা সহজ!

নিম্নলিখিত কোড বিবেচনা করুন:

var has_boston_cream_pie = cakes.has("Boston Cream Pie");
console.log(has_boston_cream_pie);

আমাদের কোড ফিরে আসে:true . has() পদ্ধতি একটি বুলিয়ান মান প্রদান করে - হয় সত্য বা মিথ্যা - একটি সেটে একটি নির্দিষ্ট মান রয়েছে কিনা তার উপর নির্ভর করে। এই পদ্ধতিটি includes() এর মত যেটি আপনি একটি অ্যারেতে ব্যবহার করবেন কিন্তু has() শুধুমাত্র সেটের সাথে কাজ করে।

একটি সেট থেকে একটি মান অপসারণ

বেকার সিদ্ধান্ত নিয়েছে যে স্ট্রবেরি চিজকেক আর বেকারিতে পরিবেশন করা হবে না। অন্যান্য কেকের তুলনায় স্ট্রবেরি চিজকেক তৈরি করতে বেশি সময় নেয় এবং খুব একটা জনপ্রিয় ছিল না।

আপনি উপযুক্ত নামযুক্ত delete() ব্যবহার করে একটি সেট থেকে একটি মান সরাতে পারেন পদ্ধতি আসুন আমাদের সেট থেকে "স্ট্রবেরি চিজকেক" মানটি সরিয়ে ফেলি:

cakes.delete("Strawberry Cheesecake");
console.log(cakes);

আমাদের কোড ফিরে আসে:

Set(3) ["Lemon Cake", "Carrot Cake", "Boston Cream Pie"]

স্ট্রবেরি চিজকেক আমাদের সেট থেকে সরানো হয়েছিল।

আপনি clear() ব্যবহার করে একটি সেট থেকে সমস্ত মান মুছে ফেলতে পারেন পদ্ধতি।

একটি সেটের উপর পুনরাবৃত্তি করুন

তালিকার মত সেট, পুনরাবৃত্তিযোগ্য বস্তু। আপনি এর অর্থ কী জানেন:আপনি তাদের উপর পুনরাবৃত্তি করতে পারেন।

আমরা আমাদের কেক সেটের উপর পুনরাবৃত্তি করার জন্য প্রতিটি লুপ ব্যবহার করতে যাচ্ছি। আমাদের প্রতিটি লুপ আমাদের তালিকার প্রতিটি আইটেমের মধ্য দিয়ে যাবে-তালিকার প্রতিটি আইটেমের জন্য-এবং কনসোলে এটি প্রিন্ট করবে:

cakes.forEach(cake => {
	console.log(cake);
}

আমাদের কোড একটি পুনরাবৃত্তিকারী প্রদান করে যা আমাদের সেটের প্রতিটি মান কনসোলে প্রিন্ট করে:

Lemon Cake
Carrot Cake
Boston Cream Pie

এটা যে সহজ! আপনি একটি ফর-অফ লুপ ব্যবহার করতে পারেন:

for (let cake of cakes) {
	console.log(cake);
}

এই কোডটি আমাদের forEach হিসাবে একই আউটপুট প্রদান করে লুপ:

Lemon Cake
Carrot Cake
Boston Cream Pie

আপনি একটি সেটের মাধ্যমে পুনরাবৃত্ত করার জন্য একটি লুপ ব্যবহার করতে বেছে নিতে পারেন কিন্তু যেহেতু সেটগুলি পুনরাবৃত্তিযোগ্য বস্তু, তাই প্রতিটির জন্য বা লুপের জন্য একটি ব্যবহার করা সহজ৷

সেট ব্যবহার করে ডুপ্লিকেট মান অপসারণ

যখন আপনি একটি অ্যারের সাথে একটি সেট শুরু করবেন, তখন সমস্ত সদৃশ মান স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে। এটি একটি অবিশ্বাস্যভাবে দরকারী বৈশিষ্ট্য.

ধরা যাক যে আমাদের একটি তালিকা রয়েছে যাতে অনেকগুলি কেকের অর্ডার রয়েছে:

var cakes = ["Lemon Cake", "Carrot Cake", "Strawberry Cheesecake", "Lemon Cake", "Chocolate Cake", "Chocolate Fudge Cake", "Chocolate Cake", "Red Velvet Cake"];

এই সেটে বেকারিতে তৈরি সমস্ত কেকের অর্ডার রয়েছে। মোট, আটটি মান আছে; দুটি মান সদৃশ।

ধরুন যে বেকার জানতে চায় বিভিন্ন ধরণের কেক অর্ডার করা হয়েছে, তাই সে তার রান্নাঘর প্রস্তুত করা শুরু করতে পারে। আমরা আমাদের সেটটিকে একটি তালিকায় রূপান্তর করে এটি খুঁজে পেতে পারি:

var unique_cakes = new Set(cakes);
console.log(unique_cakes);

আমাদের কোড ফিরে আসে:

Set(6) [ "Lemon Cake", "Carrot Cake", "Strawberry Cheesecake", "Chocolate Cake", "Chocolate Fudge Cake", "Red Velvet Cake" ]

আমাদের তালিকাটি ছয়টি মান পর্যন্ত কম করা হয়েছে। আমাদের অর্ডার তালিকা থেকে এই অনন্য মান সব. এক ধাপ বাকি আছে।

আমাদের কেকের সেটটিকে একটি তালিকায় রূপান্তর করতে হবে যাতে আমরা স্ট্যান্ডার্ড তালিকা পদ্ধতি ব্যবহার করে এর সাথে ইন্টারঅ্যাক্ট করতে পারি। আমরা Array.from() ব্যবহার করে তা করতে পারি পদ্ধতি:

let final_cakes = Array.from(unique_cakes);
console.log(final_cakes);

আমাদের কোড ফিরে আসে:

[ "Lemon Cake", "Carrot Cake", "Strawberry Cheesecake", "Chocolate Cake", "Chocolate Fudge Cake", "Red Velvet Cake" ]

যদিও এই কোডের আউটপুট আমাদের সেটের মতো, সেখানে একটি বড় পার্থক্য রয়েছে:আমাদের ডেটা এখন অ্যারে হিসাবে সংরক্ষণ করা হয়। এর মানে হল যে আমরা সমস্ত বিল্ট-ইন জাভাস্ক্রিপ্ট অ্যারে পদ্ধতি ব্যবহার করে এটির সাথে ইন্টারঅ্যাক্ট করতে পারি।

উপসংহার

সেট অবজেক্ট আপনাকে আইটেমগুলির একটি তালিকা সংরক্ষণ করার অনুমতি দেয় যা শুধুমাত্র অনন্য মান ধারণ করতে পারে। একটি বিদ্যমান পুনরাবৃত্তিযোগ্য বস্তু থেকে সেটগুলি শুরু করা যেতে পারে, যেমন একটি তালিকা বা একটি স্ট্রিং।

যেহেতু সেট অবজেক্টটি ডুপ্লিকেট মানগুলি সরিয়ে দেয়, আপনি এটিকে একটি অ্যারে থেকে যেকোনো সদৃশ অপসারণের উপায় হিসাবে ব্যবহার করতে পারেন। তারপর, একবার আপনি সম্পন্ন হলে, আপনি আপনার সেটটিকে একটি অ্যারেতে রূপান্তর করতে পারেন।

এখন আপনি জাভাস্ক্রিপ্টে সেটগুলিকে একজন পেশাদারের মতো ব্যবহার শুরু করতে প্রস্তুত!


  1. JavaScript array.values()

  2. কিভাবে গতিশীলভাবে জাভাস্ক্রিপ্ট অবজেক্ট মান সেট করবেন?

  3. জাভাস্ক্রিপ্ট অ্যারে:একাধিক মান পরীক্ষা করা হচ্ছে

  4. জাভাস্ক্রিপ্ট পাওয়ার সেটে একটি সেটের জন্য পাওয়ার সেট খোঁজা