Skip to main content

জাভাস্ক্রিপ্ট E6 - Array.filter()

 


 

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

Popular posts from this blog

IELTS Spoken Class Adminssion Scenario - 01

.......  Student: Hello, May I come in, sir ? Optional (student): May I sit ? Sir:  Please have a seat. Sir: How may I help you, Sir ? Student: I would like to admit in your spoken course. Sir: Oh sure. Student: How many days are there in a week ? Sir: There are three classes in a week. Student: What time do you offer class ? Sir: We have class at 11am / 4pm / 6pm / 8pm

Php Learning Time

 Differences of explode( ) and implode( ) in php: explode: একটা স্ট্রিংকে কোনো একটা সেপারেটরের বেসিসে অ্যারেতে কনভার্ট করে, যেমন  <?php $text="Hello How are you?"; print_r(explode(" ",$text)); ?> This will give output of  Array (     [0] => Hello     [1] => How     [2] => are     [3] => you? ) Differences of array_splice( ) and array_slice( ) ধরেন আসল অ্যারে হচ্ছে    $arr =[ "Hello" , "this" , "is" , "test" , "text" ];    এখন এটাকে স্লাইসিং করার জন্য আমরা উপরের দুইটা মেথড ই ব্যবহার করতে পারি , কিন্তু array_splice এটা ইউজ করলে অরজিনাল array ও চেঞ্জ হয়ে যাবে, মানে যদি আমরা এভাবে লিখি  $var2 = array_splice ( $arr , 0 , 2 );   তাইলে $var2 এর ভিতরে থাকবে ["Hello" , "this"] ,  আর অরজিনাল array তে বাকি থাকবে ["is", "test", "text"] কিন্তু যদি আমরা ইউজ করি তাহলে অরজিনাল array আগের মতোই থাকবে পাশাপাশি $var2 এর মধ্যে ভ্যালু গুলা এসে পড়বে  Array (     [0] => ...