কে include আছে কে নাই
মাঝেমধ্যে পোলাপান গো ধরে। তুই তাকে পিকনিকে নিয়ে গেলে আমি যাব না বা তাকে তোর বন্ধু বানালে আমি তোর সাথে থাকব না। এইসব ক্ষেত্রে জানতে চায়, কোনো একটা মানুষ কিছুর মধ্যে আছে কি না। জাভাস্ক্রিপ্ট বা সব প্রোগ্রামিং ল্যাঙ্গুয়েজেও এইটার দরকার পড়ে। কোনো একটা উপাদান কোনো একটা অ্যারের মধ্যে আছে কি না।
ধর, তোর কাছে একটি অ্যারে আছে। এখন যদি আমি জানতে চাই, এই অ্যারেতে gelam আছে কি না, তাহলে includes() মেথড ব্যবহার করতে পারবি।
অনেকটা পুশের মতো করে। এইটা ইউজ করার জন্য যেই অ্যারের মধ্যে উপাদান খুঁজবি, তার নাম আগে লিখবি। এরপর একটা ডট চিহ্ন (.) দিয়ে includes লিখবি। এরপর দুইটা ব্র্যাকেটের ভিতরে যে উপাদান আছে কি না জানতে চাস, সেটার নাম লিখবি। যদি সংখ্যা খুঁজোস, তাইলে সরাসরি সংখ্যা লিখে দিবি। আর যদি কোনো স্ট্রিং টাইপের মান খুঁজতে যাস, তাহলে সেটা স্ট্রিংয়ের মতো করে কোটেশনের ভিতরে লিখবি। আর কিছু না ।
যদি সেই উপাদান অ্যারের মধ্যে থাকে, তাহলে তোকে true বলবে। আর যদি না থাকে, তাহলে false বলবে। খুবই সিম্পল কথাবার্তা।
const friends = ['balam', 'kalam', 'salam', 'gelam', 'pailam'];
const exist = friends.includes('gelam');
console.log(exist);
Output: trueযদি এমন কোনো উপাদান চেক করতে যাই, যা নেই:
const friends = ['balam', 'kalam', 'salam', 'gelam', 'pailam'];
const exist = friends.includes('khailam');
console.log(exist);
Output: falseআমরা if-else-এর শর্তের মধ্যেও চেক করার জন্য includes() ব্যবহার করতে পারি:
const friends = ['balam', 'kalam', 'salam', 'gelam', 'pailam'];
if (friends.includes('khailam')) {
console.log('Party');
} else {
console.log('No food. We are fasting.');
}
Output: No food. We are fasting.এখানে মনে রাখতে হবে, includes হলো case-sensitive, অর্থাৎ বড় হাতের এবং ছোট হাতের অক্ষর আলাদাভাবে গণ্য হবে:
const friends = ['balam', 'kalam', 'salam', 'gelam', 'pailam'];
console.log(friends.includes('Gelam'));
Output: falseকে কোথায় include আছিস
আমরা includes দিয়ে অ্যারের মধ্যে কোনো উপাদান আছে কি না, চেক করতে পারি। তবে চেক করার আরেকটা উপায় হচ্ছে, উপাদানের ইনডেক্স জানা। যদি ইনডেক্স 0-এর চাইতে বড় কোনো সংখ্যা হয়, তাহলে সেই উপাদান অ্যারের মধ্যে আছে এবং সেই পজিশন জানতে পারব indexOf ইউজ করে। অনেকটা includes-এর মতোই কাজ করবে। তবে ডিফারেন্স হচ্ছে includes উপাদান থাকলে true, আর না থাকলে flase বলে। আর indexOf তোকে index-এর মান দিয়ে দিবে।
const friends = ['balam', 'kalam', 'salam', 'gelam', 'pailam'];
const index = friends.indexOf('gelam');
console.log(index);
Output: 3অ্যারের মধ্যে কোনো উপাদান থাকলে সেটার ইনডেক্স 0 বা তার বড় কোনো সংখ্যা হবেই হবে। কোনো মাফ নাই। আর যদি কোনো কারণে কোনো উপাদানের ইনডেক্স যদি -1 দিয়ে দেয়, তাহলে 100% নিশ্চিত হয়ে বলতে পারবি, সেই উপাদান অ্যারের মধ্যে নাই।
const friends = ['balam', 'kalam', 'salam', 'gelam', 'pailam'];
const index = friends.indexOf('khailam');
console.log(index);
Output: -1যেহেতু array-এর মধ্যে ইনডেক্স শূন্য থেকে শুরু হয়। তাই array -এর মধ্যে কোনো উপাদান থাকলে সেটার ইনডেক্সের মান 0 বা তার চেয়ে বড় কোনো সংখ্যা হবে। কোনোভাবেই 0-এর ছোট কোনো ইনডেক্স হওয়া সম্ভব না। তাই যদি উপাদান অ্যারের মধ্যে না থাকে, তাহলে সেটার ইনডেক্সকে -1 দিয়ে বুঝায়— সেই উপাদান আসলে array-এর মধ্যে নাই।
এখন আবার দুঃখ করে বলিস না— সে আমাকে তার লাইফের -1 পজিশনে রাখছে।
JavaScript Include and indexOf method Practice:
- includes আর indexOf এর মধ্যে পার্থক্য কি ?
- তুই একটা প্রোগ্রাম বানাতে চাস, যেটাতে ‘আম’ নামক একটা ফল লিস্টে আছে কি না, সেটা চেক করবে। যদি থাকে, তবে আউটপুটে বলবে, ‘আম আছে’, আর না থাকলে বলবে, ‘আম নেই, গাছে উঠ’। ফলের অ্যারেতে ‘আপেল’, ‘কলা’, ‘আম’ ও ‘লিচু’ আছে।
- তুই একটা অ্যারে বানালি, যেখানে নামগুলো আছে— ‘বাবুল’, ‘আলিফ’, ‘ছোটন’। এখন প্রোগ্রাম লিখে দেখ, বাবুলের ইনডেক্স নাম্বার কত।
- ধর, তুই বন্ধুদের নামের একটা লিস্ট বানিয়েছিস অ্যারেতে— ‘রিমন’, ‘রিফাত’, ‘রাজিব’। এখন তোর মনে হলো, ‘রিফাত’-এর অবস্থানটা ভুলে গেছিস। একটা প্রোগ্রাম লিখে রিফাতের ইনডেক্স বের কর।
- তুই কিছু শহরের নাম লিখে রাখছিস— ‘Dhaka’, ‘Chittagong’, ‘Sylhet’। এখন তুই ভাবলি, আরেকটা শহরের নাম যোগ করবি, কিন্তু ভুলে ছোট হাতের rajshahi যোগ করে ফেললি। এবার প্রোগ্রাম লিখে চেক কর, RajShahi আছে কি না।
- একটা প্রোগ্রাম বানিয়ে ‘বৃষ্টি’ নামক উপাদান আছে কি না, চেক কর। যদি থাকে, তাহলে আউটপুটে বলবি ‘I need umberalla’, না থাকলে বলবি ‘No rain no pain’। অ্যারেতে ‘দীঘি’, ‘মেঘ’, ‘বৃষ্টি’ ও ‘বর্ষা’ আছে।
- তোর প্রিয় খেলাধুলার একটা অ্যারে আছে— ‘ফুটবল’, ‘ক্রিকেট’, ‘ভলিবল’। এখন তুই চেক করতে চাস ‘ব্যাডমিন্টন’ নামক খেলাটি অ্যারেতে আছে কি না।