Array.filter(): এইটা Array এরই একটা বিল্ট
ইন (ওদের বানানো) মেথড / ফাংশন যেটা কি কাজ করে?
ফিল্টার করে কোনো একটা কন্ডিশন এর উপরে ভিত্তি করে । যেমনঃ
ধরেন আপনার কাছে অ্যারে আছে
A = [1,2,3,4,5];
এখন আপনি নতুন আরেকটা Array চাইতেছেন, যেখানে কি রাখবেন?
ঐ A array থেকে শুধু জোড় সংখ্যা গুলাকে ছাকনির মতো ছেকে নতুন আরেকটা Array বানাবেন,
মানে আগের Array এর আইটেম গুলা থেকেই কোনো একটা কন্ডিশনের ভিত্তিতে নতুন আরেকটা
Array বানানো আর কি ।
কাজটা ক্যামনে করবো ?
const a= [ 1,2,3,4,5 ] ;
const newArrayAfterFilter = a.filter(এইখানে একটা ফাংশন দিতে হবে যেই ফাংশনের
কাজ হবে ঐ কন্ডিশন Apply করে আইটেম গুলা রিটার্ন করা) )
Array.filter(
ফাংশন )
এটা বুঝেছি? যে filter নিজে একটা ফাংশন, কিন্তু ওকে দিয়ে
কাজ করাইতে চাইলে ওর প্যারামিটার হিসেবে আমাকে/আপনাকে আরেকটা ফাংশন পাস করতে হবে, যেই
ফাংশন পাস করবো ঐ ফাংশনেই কন্ডিশন দেয়া থাকবে যে আমরা নতুন Array তে পুরাতন Array থেকে
কোন কোন আইটেম গুলা চাই । কথা ক্লিয়ার ?
হ্যাঁ, খুব বুঝলাম function পাস করা লাগবে , কিন্তু কিভাবে
কি করবো ?
আমাদের জানতে হবে JavaScript এ ফাংশন বানাই ক্যামনে । ক্যামনে?
function etaAktaFunction( ){
}
এমনে। আরেকটা আছে
অ্যারো ফাংশন , ঐটা আবার কি জিনিস? ভয়ের কিছু নাই ঐটাও ফাংশন ই,
ধরেন আপনি কারোর থেকে টাকা পাবেন , সে দিতে এসেছে কিন্তু
আপনার হাতে মেহেন্দি লাগানো এজন্যে টাকাটা নিতে পারছেন না হাত দিয়ে, উনাকে বললেন যে
টাকাটা আপনার পকেটে ঢুকিয়ে দিতে,
এখন উনি টাকাটা আপনার ডান দিকের পকেটে দিলো নাকি বাম দিকের
পকেটে দিলো, এটা কি আদৌ matter করে ? ঐরকম ই,
আপনি নরমাল function ইউজ করলেন নাকি Arrow ফাংশন ইউজ করলেন
এটা তেমন Matter করবে না, একটা ফাংশন পাস করতে হবে করবেন ব্যাস । তো আমরা যেহেতু বলছিলাম
যে জোড় সংখ্যা গুলাই নতুন Array তে চাই ফিল্টার করার পর , তো এটার জন্য এমন একটা ফাংশন
লিখে ফেলি এখন, যেটা কিনা জোড় নাম্বার গুলাই রিটার্ন করবে ।
function jorNumberDe(num){
num%2==0?return num
}
এটা না বুঝলে সমস্যা নাই, আমি যে Tenary Operator পারি এটা
দেখানোর জন্যই এমন কঠিন করে লিখলাম। যাইহোক , ঐ ফাংশনের মোদ্দা কথা হচ্ছে
function
jorNumberDe( num ) {
if(
num%2===0){
return
num;
}
}
তাহলে একটা ফাংশন বানাইয়া ফেলসি যেটা আমাদের জোড় নাম্বার
গুলা রিটার্ন করে, এখন Array.filter( ) রে এই ফাংশনটা খাওয়াইয়া আসি চলেন ।
const newArrayAfterFilter = a.filter( jorNumberDe );
কাজ হয়ে গেছে ভাই। এখন newArrayAfterFilter এটাকে পিন্ট করেন
দেখবেন যা চাইসেন তাই পাইসেন ।
console.log( newArrayAfterFilter ) ;
On spot Array বানাইয়া খাওয়াইতে পারতেন , তখন Arrow
function অথবা Anonymous Function বানাইয়া
দিতে হইতো , আর লিখতে ভাল্লাগছে না তাই কোড দিয়ে দিলাম শুধু ।
const newArrayAfterFilter = a.filter( (num) => {
if( num
%2===0)return num;
});
দুইটা সমান আর তিনটা সমানের মধ্যে পার্থক্য আছে,
== দুইটা সমান variable এর type change করে তারপর
comparison করে যে সমান কিনা, মানে 2 == ‘2’ এই দুইটা সমান বলবে , যদিও একটা নাম্বার টাইপের
আরেকটা স্ট্রিং টাইপের ,
কিন্তু তিনটা সমান থাকলে বলে যে strict comparison মানে ভ্যালু
তো সেইম হইতে হবেই, সাথে টাইপও সেইম হইতে হবে নাহলে মাইর হবে , ঠিকাচ্ছে ? ওকে বাই
।
Comments
Post a Comment