Skip to content

Chapter 16: JavaScript Built-In Objects and Methods

16-1: ট্রাক্টর ট্রাক্টর Type Constructor

জাভাস্ক্রিপ্টে বেশির ভাগ সময় আমরা সরাসরি বিভিন্ন ধরনের ভেরিয়েবল ডাইরেক্ট ডিক্লেয়ার করে ফেলি। তাই বেশির ভাগ সময় বিল্ট-ইন টাইপ কন্সট্রাক্টরের (Number, String, Boolean, Function, Object) দরকার পড়ে না। তারপরেও এইগুলা কদাচিৎ কাজে লেগে যেতে পারে। তাই একটু দেখে রাখ।

তুই বলতে পারস, ভাই কন্সট্রাক্টর কী জিনিস বা আমি এই কন্সট্রাক্টর দিয়ে কী করব। আমি কন্সট্রাক্টর নিয়ে বিস্তারিত একটু পরে বলতেছি। তবে সিম্পলভাবে খেয়াল করতে পারস, কন্সট্রাক্টর মানে সেটা দিয়ে আমি কিছু একটা বানাব বা কন্সট্রাক্ট করব। constructor শব্দটা construct-এর কাছাকাছি। construct বলতে বুঝায় বানানো বা তৈরি করা। আর constructor মানে হচ্ছে, কে তৈরি করে।

Number Constructor

ধর, তোর কাছে একটা স্ট্রিং আকারে সংখ্যা আছে। সেটা তুই সংখ্যা হিসেবে ব্যবহার করতে চাইছিস। তখনই Number কন্সট্রাক্টর কাজে আসবে।

javascript
const strNum = "42";
const num = Number(strNum);
console.log(num);

Output: 42;

যদিও স্ট্রিং থেকে সংখ্যায় রূপান্তর করার আরেকটা শর্টকার্ট আছে। সেটা হচ্ছে, স্ট্রিংওয়ালা সংখ্যার আগে একটা প্লাস চিহ্ন দিয়ে দিলেই সেটা Number টাইপে কনভার্ট হয়ে যাবে।

javascript
const str = "591";
const num = +str;
console.log(typeof num);

Output: number;

String Constructor

আবার একটা সংখ্যা আছে। সেটাকে স্ট্রিং হিসেবে পাওয়া দরকার। তখন String কন্সট্রাক্টর খুব কাজে লাগে.

javascript
const num = 123;
const str = String(num);
console.log(str);

Output: "123";

সংখ্যা থেকে স্ট্রিংয়ে কনভার্ট করার একটা শর্টকাট সিস্টেম আছে। সেটা হচ্ছে সংখ্যার সাথে একটা এম্পটি স্ট্রিং ('') যোগ করে দিবি। তাহলেই একটা number টাইপের ভেরিয়েবল স্ট্রিং টাইপের ভেরিয়েবল হয়ে যাবে.

javascript
const num = 931;
const str = num + "";
console.log(typeof str);

Output: string;

Boolean Constructor:

অনেক সময় এমন হয় যে, তুই কোনো ভ্যালু চেক করতে চাইছিস, এটা true না false। তখন Boolean কন্সট্রাক্টর কাজে আসে।

javascript
const isTruthy = Boolean(1);
console.log(isTruthy);

Output: true;

একইভাবে false, 0, null, undefined, NaN, empty string("") এগুলো Boolean কন্সট্রাক্টরে দিলে false দেখাবে। এইগুলা ছাড়া বাকি যেগুলা আছে, সেগুলা true দিবে। যেমন, যেকোনো স্ট্রিং, শূন্য ছাড়া যেকোনো সংখ্যা, [ ], { } ইত্যাদি তোকে true দিবে.

Function Constructor

তুই যদি ডায়নামিকভাবে একটা ফাংশন তৈরি করতে চাস, তাহলে Function কন্সট্রাক্টর ব্যবহার করতে পারিস। তবে খুব বেশি দরকার ছাড়া এটা এড়িয়ে চলা ভালো।

javascript
const add = new Function("a", "b", "return a + b");
console.log(add(5, 10));

Output: 15;

Object Constructor

এটা একটু পুরনো পদ্ধতি, যেখানে new Object() ব্যবহার করে অবজেক্ট তৈরি করা যায়। সাধারণত কেউ ইউজ করে না। তারপরেও চাইলে এইভাবে অবজেক্ট তৈরি করা যায়.

javascript
  const person = new Object();
  person.name = "John";
  person.age = 30;
  console.log(person);

Output: {name: 'John', age: 30}

Practice:

  1. একটা ভেরিয়েবল বানা, যার নাম হবে start। এর ভ্যালু হবে '786'। এরপর এই স্ট্রিংটাকে সংখ্যায় রূপান্তর কর।
  2. একটা ভেরিয়েবল বানা, যার নাম willAttend এবং এইটার মান 0 হবে। এখন এই ভেরিয়েবলকে Boolean টাইপে কনভার্ট কর এবং console-এ দেখা।
  3. Object কন্সট্রাক্টর দিয়ে একটি অবজেক্ট তৈরি কর, যেখানে city এবং country নামে দুইটা প্রোপার্টি থাকবে।
  4. একটা ভেরিয়েবল বানা, যার নাম হবে total। এর ভ্যালু হবে 1970 । এই সংখ্যাটাকে স্ট্রিংয়ে রূপান্তর কর।

16-2: অল্প-স্বল্প Math অঙ্ক

প্রোগ্রামিংয়ে আমাদের অনেক সময় অঙ্ক নিয়ে কাজ করতে হয়। চল, কিছু সিম্পল কাজ দেখে ফেলি। ধর, তোদের কাছে তিনটা সংখ্যা রয়েছে, কোন সংখ্যাটা সবচেয়ে বড়, সেটা বের করতে হবে।

জাভাস্ক্রিপ্ট আমাদেরকে Math নামে একটা অবজেক্ট দিয়ে দিয়েছে এবং এর মধ্যে বেশ কিছু ফাংশন আছে, যেগুলো প্রোপার্টি হিসেবে ব্যবহার করতে পারবি। এটা দিয়ে অনেক কাজ সহজেই শর্টকাটে করে ফেলতে পারবি।

যেমন ধর:

javascript
const min = Math.min(45, 21, 65, 99, 126, 5, -99);
console.log(min);

Output: -99;

আবার তুই চাইলে সেখান থেকে ম্যাক্সিমাম ভ্যালুটাও বের করে নিয়ে আসতে পারবি এই Math অবজেক্ট ব্যবহার করে। এইটার জন্য Math-এর মধ্যে max ফাংশনটা ইউজ করবি।

javascript
const max = Math.max(45, 21, 65, 99, 126, 5, -99);
console.log(max);

Output: 126;

পাই নাই : পাই

এ রকম অনেক কিছুই এই Math অবজেক্টের মধ্যে আছে। তুই এগুলো এক্সেস করার জন্য Math-এর পর ডট চিহ্ন দিলেই অনেকগুলো অপশন চলে আসবে। তোর যেটা দরকার, সেটাই ব্যবহার কর। যেমন, Math.PI দিয়ে পাইয়ের মান পাবি।

javascript
  console.log("Value of PI is:", Math.PI);

Output: Value of PI is: 3.141592653589793

Math.abs()

কখনো কখনো তুই absolute মান বের করতে পারবি। মানে নেগেটিভ বা পজিটিভ ভ্যালু দিলেও সেটা সব সময় পজিটিভ মান দিবে।

javascript
console.log(Math.abs(-7));
console.log(Math.abs(7));

Output: 7;
7;

Math.round

Math.round()-এর মাধ্যমে তুই দশমিকওয়ালা সংখ্যাকে তার নিকটবর্তী পূর্নসংখ্যাতে রূপান্তর করতে পারবি। যেমন 4.8-কে 5 এবং 4.2-কে 4 তে কনভার্ট করতে পারবি।

javascript
console.log(Math.round(4.7));
console.log(Math.round(4.2));

Output: 5;
4;

Math.floor

Math.floor() আমাদের কোনো ভগ্নাংশকে তার নিকটবর্তী ছোট পূর্নসংখ্যাতে রূপান্তর করবে.

javascript
console.log(Math.floor(4.7));
console.log(Math.floor(4.2));

Output: 4;
4;

Math.ceil

Math.ceil() নিকটবর্তী বড় পূর্নসংখ্যায় রূপান্তর করবে।

javascript
console.log(Math.ceil(4.7));
console.log(Math.ceil(4.2));

Output: 5;
5;

Math.random()

আরেকটা গুরুত্বপূর্ণ ফাংশন হলো Math.random()। এটা তুই যতবারই কল করবি, ততবারই আলাদা আলাদা মান ( র‍্যান্ডম ভ্যালু) দিবে। কখনো লটারি করতে চাইলে বা অনেকের মধ্যে একজনকে বাছাই করতে চাইলে এই ফাংশন খুব কাজে লাগে.

javascript
console.log(Math.random());
console.log(Math.random());

Output: 0.768538956446644;
0.3460739268221534;

Practice:

  1. সাতটা সংখ্যা 45, 11, 89, 23, 56, -12, -56-এর মধ্যে সবচেয়ে ছোট সংখ্যা বের কর।
  2. তিনটা সংখ্যা 21, 35, 67-এর মধ্যে সবচেয়ে বড় সংখ্যাটা বের কর।
  3. 7.6 এবং 7.2-কে তার নিকটবর্তী পূর্ণসংখ্যায় রূপান্তর কর।
  4. 9.8 এবং 5.3-কে তার নিকটবর্তী ছোট পূর্ণসংখ্যায় রূপান্তর কর।
  5. 3.1 এবং 6.9-কে তার নিকটবর্তী বড় পূর্ণসংখ্যায় রূপান্তর কর।
  6. Math.abs ব্যবহার করে -34-এর absolute মান বের কর।
  7. একটি ফাংশন লিখ, যেটা একটা দশমিকওয়ালা সংখ্যা ইনপুট প্যারামিটার হিসেবে নিবে। তারপর সেই ফাংশনের ভিতরে সেই সংখ্যাটিকে Math.round, Math.floor এবং Math.ceil ব্যবহার করে কনসোল লগ কর।

16-3: Date with JS Date

জাভাস্ক্রিপ্টে Date অবজেক্ট ব্যবহার করে তারিখ এবং সময়ের বিভিন্ন কাজ খুব সহজে করা যায়।

যে মুহূর্তে কোড চলবে, সেই মুহূর্তের সময় পাওয়ার জন্য new Date() ব্যবহার করতে হয়।

javascript
const now = new Date();
console.log(now);

নির্দিষ্ট তারিখ সেট করা

চাইলে new Date-এর মধ্যে কোনো একটা তারিখ দিয়ে দিতে পারবি, তাহলে সেই তারিখের একটা অবজেক্ট তোকে দিয়ে দিবে। তারপর সেটার ওপর তুই বিভিন্ন কাজ করতে পারবি।

javascript
  const specificDate = new Date("2032-05-21");
  console.log(specificDate);

Output: 2032-05-21T00:00:00.000Z

আবার চাইলে আলাদা আলাদাভাবে তারিখ, সময়, ঘণ্টা, মিনিট ও সেকেন্ডও সেট করে দিতে পারবি।

javascript
  const dateTime = new Date(2032, 10, 12, 10, 30, 0);
  console.log(dateTime);

Output: 2032-11-12T10:30:00.000Z

তারিখের বিভিন্ন অংশ বের করা

Date অবজেক্টের বিভিন্ন মেথড ব্যবহার করে তুই তারিখের নির্দিষ্ট অংশগুলো পেতে পারিস। নিচে কিছু সাধারণ মেথড দেওয়া হলো—

getFullYear() – পুরো বছর পেতে

getMonth() – মাস পেতে (0-11, জানুয়ারি = 0, ডিসেম্বর = 11)

getDate() – তারিখ ( মাসের মধ্যে কত তারিখ) পেতে (1-31)

getDay() – সপ্তাহের দিন পেতে (0-6, রবিবার = 0, সোমবার = 1)

getHours() – ঘণ্টা পেতে (0-23)

getMinutes() – মিনিট পেতে

getSeconds() – সেকেন্ড পেতে

আবার চাইলে স্পেসিফিক কোনো একটা তারিখ, ঘণ্টা, সময় বা সেকেন্ড সেটও করতে পারবি।

setFullYear() – বছর সেট করা

setMonth() – মাস সেট করা

setDate() – দিনের তারিখ সেট করা

setHours() – ঘণ্টা সেট করা

setMinutes() – মিনিট সেট করা

setSeconds() – সেকেন্ড সেট করা

সময় পার্থক্য

দুইটি Date অবজেক্টের মধ্যে পার্থক্য বের করার জন্য তাদের টাইমস্ট্যাম্প বা মিলিসেকেন্ডে কনভার্ট করে বের করতে পারবি।

javascript
const date1 = new Date("2028-11-01");
const date2 = new Date("2029-02-16");

const diffInMiliSeconds = date2 - date1;
const diffInDays = diffInMiliSeconds / (1000 * 60 * 60 * 24);
console.log(diffInDays);

Output: 107;

দুইটা ডেটের মধ্যে ডিফারেন্স বের করলে মিলিসেকেন্ডে ডিফারেন্সটা দিবে। তারপর তুই প্রয়োজন অনুসারে মিলিসেকেন্ডকে 1000 দুই ভাগ করলে সেটা সেকেন্ডে। তারপর সেটাকে আবার 60 দিয়ে ভাগ করলে মিনিটে। আবার মিনিটকে 60 দিয়ে ভাগ করলে সেটা ঘণ্টায়। ঘণ্টাকে 24 দিয়ে ভাগ করলে দিনে কনভার্ট করা যায়।

সংক্ষেপে বলতে গেলে জাভাস্ক্রিপ্টের Date অবজেক্ট ব্যবহার করে সময় এবং তারিখের বিভিন্ন কাজ খুব সহজে করা যায়। সময় ম্যানিপুলেশন, পার্থক্য নির্ণয় এবং নির্দিষ্ট সময় ফরম্যাটে কনভার্ট করা সবই Date অবজেক্টের সাহায্যে সম্ভব।

Practice:

  1. new Date ব্যবহার করে বর্তমানে যে মুহূর্তে কোড চলছে, সেই সময় কনসোলে দেখাও।
  2. নতুন Date অবজেক্ট বানিয়ে তার মধ্যে 2035, 6, 15, 14, 45, 30 সেট কর।
  3. getFullYear ব্যবহার করে বর্তমান বছরের মান কনসোলে দেখাও।
  4. setFullYear ব্যবহার করে একটি Date অবজেক্টের বছর 2040 সেট কর।
  5. getDay ব্যবহার করে 2029-02-16 তারিখের সপ্তাহের দিন এবং সে দিনের নাম বের কর।

16-4: অপেরেশন, Regular Expression

ধর, তুই একটা বইতে কোনো নির্দিষ্ট শব্দ খুঁজতে চাস, যেমন 'apple' বা 'orange'। কিন্তু তুই হয়তো পুরা শব্দটা জানস না। হতে পারে তুই ভাবতেছস, কোনো একটা লেটার দিয়ে শুরু হইছে, তারপর দুইটা pp আছে, এরপর একটা ' l ' আছে, এরপর কী আছে, তোর মনে নাই। এইরকম পারশিয়াল ম্যাচিং কিংবা প্যাটার্ন দিয়ে তুই শব্দ খুঁজে বের করতে পারিস। আর একজাক্ট শব্দ বা বাক্য জানলে সেটা তো অবশ্যই বের করতে পারবি।

আর প্যাটার্ন বা আংশিক ম্যাচিং দিয়ে স্ট্রিং খুঁজে বের করার এই সিস্টেম বেশির ভাগ প্রোগ্রামিং লাঙ্গুয়েজেই আছে। জাভাস্ক্রিপ্টেও আছে। আর এইটার নাম হচ্ছে Regular Expressions (RegEx)।

Regular Expression (RegEx) কী?

Regular Expression হলো একধরনের প্যাটার্ন বা নিয়ম, যার মাধ্যমে তুই কোনো টেক্সটের মধ্যে নির্দিষ্ট কিছু খুঁজে বের করতে পারিস, সেই টেক্সটের একটা অংশ পরিবর্তন করতে পারিস বা চেক করতে পারিস, সেটা কোনো শর্ত পূরণ করে কি না।

জাভাস্ক্রিপ্টে RegEx তৈরি করার জন্য দুইভাবে ব্যবহার করতে পারিস। একটা হতে পারে সরাসরি ফরওয়ার্ড স্ল্যাশ চিহ্নের (/) মধ্যে লিখে। আরেকটা হতে পারে new RegExp() কন্সট্রাক্টরের ইউজ করে।

javascript
const pattern = /apple/;
const pattern = new RegExp("apple");

RegEx ইউজ করে টেক্সটের মধ্যে যেকোনো নির্দিষ্ট শব্দ খুঁজে পাওয়া যায়। যেমন ধর, তুই একটা বাক্যে "apple" শব্দটা আছে কি না চেক করতে চাস।

javascript
const sentence = "I have an apple.";
const pattern = /apple/;
console.log(pattern.test(sentence));

Output: true;

এখানে .test() মেথড ব্যবহার করা হয়েছে, যেটা true বা false রিটার্ন করবে। প্যাটার্ন ম্যাচ করলে true, না করলে false।

আবার RegEx দিয়ে টেক্সটের নির্দিষ্ট অংশ replace করা খুব সহজ। ধর, তুই "apple" শব্দটাকে "banana" দিয়ে replace করতে চাস।

javascript
  const sentence = "I have an apple and another apple.";
  const newSentence = sentence.replace(/apple/g, "banana");
  console.log(newSentence);

Output: I have a banana and another banana.

এখানে /apple/g মানে, টেক্সটে যতবারই "apple" আছে, সবগুলোকে "banana" দিয়ে replace করবে। g মানে global, মানে সব মিলগুলোকে ধরবে।

কিছু সাধারণ RegEx প্যাটার্ন

. – যেকোনো একটা ক্যারেক্টার।

\d – যেকোনো ডিজিট (0 থেকে 9)।

\w – যেকোনো ওয়ার্ড ক্যারেক্টার (a-z, A-Z, 0-9, _)।

\s – স্পেস।

  • – প্যাটার্ন একবার বা তার বেশি আছে।
  • – প্যাটার্ন 0 বা একবারের বেশি আছে।

^ – টেক্সটের শুরু।

$ – টেক্সটের শেষ।

ই-মেইল ভ্যালিডেশন

ধর, তুই একটা ই-মেইল চেক করতে চাস। তবে একেকজনের ইমেইল একেক রকমের হবে। কারো বড়, আবার কারো ছোট। তবে এইটার মধ্যে একটা প্যাটার্ন আছে। সেটা ছেক করার জন্য তুই নিচের একটা বিদঘুটে টাইপের রেগুলার এক্সপ্রেশন ইউজ করতে পারস।

javascript
const email = "example@mail.com";
const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
console.log(emailPattern.test(email));

Output: true;

এখানে ই-মেইলের জন্য একটা কমপ্লেক্স প্যাটার্ন ব্যবহার করা হয়েছে, যাতে ই-মেইল ঠিকঠাক ফরম্যাটে আছে কি না, চেক করা যায়।

ফোন নম্বর চেক করা

বাংলাদেশের ফোন নম্বরের জন্য একটা বেসিক প্যাটার্ন হতে পারে /^01[3-9]\d{8}$/। ধর এটা দিয়ে চেক কর, ফোন নম্বর ঠিকঠাক আছে কি না।

javascript
const phone = "01712345678";
const phonePattern = /^01[3-9]\d{8}$/;
console.log(phonePattern.test(phone));

Output: true;

RegEx-এর Flags

g – global, সব ম্যাচ ধরবে।

i – case-insensitive, বড়-ছোটো হাতের ক্যারেক্টার একইভাবে ধরবে।

Regular Expression হলো টেক্সটের মধ্যে নির্দিষ্ট কিছু খুঁজে বের করার, চেক করার বা পরিবর্তন করার একটা উপায়। RegEx দিয়ে অনেক কিছুই করা যায়, যেমন ডেটা ভ্যালিডেশন, টেক্সট সার্চ, replace ইত্যাদি। এটা একটু কঠিন মনে হতে পারে শুরুতে, কিন্তু প্র্যাকটিস করলে সহজ হয়ে যাবে!

Practice:

  1. একটা বাক্যে "I bought an orange" লেখা আছে, এখন "orange"-কে "grape" দিয়ে পরিবর্তন কর।
  2. "ana" শব্দটি "I like to have apple and banana" বাক্যে আছে কি না, চেক কর।
  3. "I am eating apple. apple is good. apple helps me a lot." এখানে "apple" শব্দটি পুরো টেক্সটের মধ্যে সব জায়গায় "JavaScript" দিয়ে পরিবর্তন কর। g ফ্ল্যাগের মাধ্যমে পুরো টেক্সটের সব চেইঞ্জ কর।

16-5: করলে ইউজ Map Set থাকবে না রিগ্রেট

জাভাস্ক্রিপ্টে ডাটা স্টোরেজের জন্য আমরা ভেরিয়েবল ইউজ করি, অ্যারে, অবজেক্ট ইউজ করি। তবে এগুলার বাইরেও আরও কিছু স্পেশাল টাইপের ডাটা রাখার সিস্টেম আছে। সেগুলার মধ্যে একটা অন্যতম হচ্ছে Set।

অ্যারের মধ্যে আমরা চাইলে একই উপাদান একাধিকবার রাখতে পারি। সেখানে Set ব্যবহার করে ইউনিক ভ্যালু রাখতে পারবি। অর্থাৎ একই ভ্যালু একাধিকবার ঢোকালে সেটা একবারই থাকবে। একবারের বেশি আসবে না।

জাভাস্ক্রিপ্টে Set ডিক্লেয়ার করার জন্য সরাসরি একটা Array থেকে Set বানানো সহজ। জাস্ট প্রথমে new লিখবি, এরপর Set লিখে ব্র্যাকেটের ভিতরে একটা অ্যারে দিয়ে দিবি। নিচের মতো করে—

javascript
  const mySet = new Set([1, 2, 3, 4, 5]);
  console.log(mySet);

Output: Set { 1, 2, 3, 4, 5 }

তুই যদি কোনো Array থেকে ডুপ্লিকেট বাদ দিতে চাস, তাও এক লাইনেই করা যায়।

javascript
  const numbers = [1, 2, 2, 3, 4, 4, 5];
  const uniqueNumbers = new Set(numbers);
  console.log(uniqueNumbers);

Output: Set { 1, 2, 3, 4, 5 }

আর যদি সেটকে ইউনিক ভ্যালুওয়ালা Array হিসেবে দেখতে চাস, তাহলে অ্যারেটাকে সেট বানাবি, আর তারপর সেই সেটকে অ্যারের ভিতরে স্প্রেড অপারেটর দিয়ে বিছিয়ে দিবি। এইটা জাস্ট দেখে রাখ—

javascript
const numbers = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [...new Set(numbers)];
console.log(uniqueArray);

Output: [1, 2, 3, 4, 5];

আর অ্যারে থেকে set বানাতে না চাইলে সরাসরি খালি একটা সেট বানাতে পারবি। তারপর উপাদান যোগ করার জন্য set-এর নামের পরে ডট চিহ্ন দিয়ে add লিখবি। অনেকটা অ্যারের মধ্যে push করার মতো করেই। কাজটা করতে পারবি। আর add করতে গেলে কোনো উপাদান যদি আগে থেকেই সেটে থাকে, তাহলে সেই উপাদান কিন্তু যোগ হবে না। তাই নিচের সেটের মধ্যে দেখবি, 10-এর মান কিন্তু একবারই থাকবে।

javascript
  const mySet = new Set();
  mySet.add(10);
  mySet.add(20);
  mySet.add(10);
  mySet.add(30);
  console.log(mySet);

Output: Set { 10, 20, 30 }

কোনো উপাদান সেটের মধ্যে আছে কি না, চেক করার জন্য সেটের নামের পর ডট চিহ্ন দিয়ে তারপর has লিখে ব্র্যাকেটের ভিতরে যে উপাদান আছে কি না, চেক করতে চাস, সেটা লিখে দিবি। আবার কোনো উপাদান বের করে দিতে চাইলে, ডিলিট করতে চাইলে সেটের নামের পর ডট চিহ্ন দিয়ে তারপর delete লিখে এরপর যে উপাদানকে রিমুভ করবি, সেটা লিখে দিবি।

javascript
  console.log(mySet.has(20));

Output: true

  mySet.delete(10);
  console.log(mySet);

Output: Set { 20, 30 }

Array vs Set

ডুপ্লিকেট ভ্যালু: Array ডুপ্লিকেট ভ্যালু রাখতে পারে, কিন্তু Set শুধু ইউনিক ভ্যালু রাখে।

অ্যাক্সেস পদ্ধতি: Array ইন্ডেক্সভিত্তিক অ্যাক্সেস সাপোর্ট করে, কিন্তু Set শুধু ভ্যালু দিয়ে কাজ করে।

ইফিশিয়েন্সি: বড় ডাটায় ডুপ্লিকেট চেক বা রিমুভ করার ক্ষেত্রে Set তুলনামূলক দ্রুত, যেখানে Array লুপের ওপর নির্ভরশীল।

Map

অবজেক্ট আমরা কি-ভ্যালু পেয়ার (key-value) স্টাইলে ডাটা রাখতে পারি। প্রত্যেকটা প্রোপার্টির মধ্যে একটা কি থাকে, একটা ভ্যালু থাকে। এই কাজটাই Map ব্যবহার করে key-value pair স্টাইলে ডাটা সংরক্ষণ করতে পারবি। তবে Map ইউজ করার কিছু বাড়তি সুবিধা আছে।

Map ডিক্লেয়ার করার পদ্ধতি

Map তৈরি করার জন্য new Map() ব্যবহার করবি। এরপর নতুন ডাটা যোগ করার জন্য .set() মেথড ব্যবহার করবি। নিচের মতো করে—

javascript
  const myMap = new Map();
  myMap.set("name", "Rahim");
  myMap.set("age", 25);
  console.log(myMap);

Output: Map { 'name' => 'Rahim', 'age' => 25 }

Map-এর সুবিধা

যেকোনো ডাটা টাইপ key হিসেবে ব্যবহার করতে পারিস (যেমন: স্ট্রিং, নাম্বার, অবজেক্ট ইত্যাদি)।

.size দিয়ে সরাসরি Map-এর সাইজ পেতে পারিস। .get() মেথড ব্যবহার করে সহজেই কোনো key-এর value পেতে পারিস।

Practice:

  1. ডুপ্লিকেট বাদ দিয়ে একটা নতুন সেট তৈরি কর [1, 2, 2, 3, 4, 4, 5]।
  2. নতুন একটা সেট বানিয়ে সেখানে 10, 20, 10, 30 এই উপাদানগুলো যোগ কর। তারপর সেটটাকে কনসোলে দেখাও।
  3. Set { 10, 20, 30 } থেকে 10 উপাদানটি ডিলিট কর।
  4. Array-এর মধ্যে [1, 2, 3, 4, 2, 1, 5, 5] উপাদানগুলো নিয়ে সেট তৈরি কর এবং সেই সেটকে array-তে রূপান্তর কর।

Released under the MIT License.