কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে হাইয়ার-অর্ডার ফাংশন (Higher-order functions) এর ব্যবহারিতা


জাভাস্ক্রিপ্টে অনেক বিল্ট-ইন ফাংশন রয়েছে একটি নির্দিষ্ট কাজ সম্পন্ন করার জন্য। কিন্তু যদি আমরা সেসব বিল্ট-ইন ফাংশদ দিয়ে সাধারণভাবে কোনো প্রোগ্রাম সমাধান করতে চাই, তবে কোডটি সংক্ষিপ্ত (concise) নাও হতে পারে। জাভাস্ক্রিপ্টে কিছু বিল্ট-ইন হাইয়ার-অর্ডার ফাংশন (higher-order functions)ও রয়েছে। এই হাইয়ার-অর্ডার ফাংশনগুলো কোডের দৈর্ঘ্য কমায়, পাঠযোগ্যতা (readability) বাড়ায় এবং অ্যাক্সেসিবিলিটি সহজ করে। কিছু হাইয়ার-অর্ডার ফাংশন হলো map, filter এবং reduce। filter হাইয়ার-অর্ডার ফাংশন সম্পর্কে আলোচনা করা যাক।

উদাহরণ

যখন হাইয়ার-অর্ডার ফাংশন নেই, তখন প্রোগ্রামের কোড অনেক লাইন নিতে পারে। নিচের উদাহরণে, একটি নতুন অ্যারে নেওয়া হয়েছে, যদিও প্রদত্ত অ্যারেটিই কাজ চালাতে যথেষ্ট। একটি for-loop, যা হাইয়ার-অর্ডার ফাংশন থাকলে অপ্রয়োজনীয়, লুপ চালাতে নেওয়া হয়েছে।

<html> <body> <script> 
    const name = []; 
    var persons = [ 
        { name: 'Frodobaggins'}, 
        { name: 'aragorn'}, 
        { name: 'gandalf'}, 
        { name: 'pippin'}, 
        { name: 'nazgul'}, 
    ]; 
    for(let i = 0; i < persons.length; i++) { 
        if(persons[i].name.length > 6) { 
            name.push(persons[i]); 
        } 
    } 
    document.write(JSON.stringify(name)); 
</script> </body> </html>

আউটপুট

[{"name":"Frodobaggins"},{"name":"aragorn"},{"name":"gandalf"}]

উদাহরণ

নিচের উদাহরণে, একটি হাইয়ার-অর্ডার ফাংশন filter ব্যবহার করা হয়েছে। উপরের উদাহরণের সাথে তুলনা করলে, নিচের উদাহরণে কোডের লাইন কম নেওয়া হয়েছে। এখানে কোনো নতুন অ্যারে নেওয়া হয়নি এবং for-loop ও ব্যবহার করা হয়নি।

<html> <body> <script> 
    const persons = [ 
        { name: 'Frodobaggins'}, 
        { name: 'aragorn'}, 
        { name: 'gandalf'}, { name: 'pippin'}, { name: 'nazgul'}, 
    ]; 
    const name = persons.filter(person => person.name.length > 7); 
    document.write(JSON.stringify(name)); 
</script> </body> </html>

আউটপুট

[{"name":"Frodobaggins"}]

  1. জাভাস্ক্রিপ্টে test() মেথডের ব্যবহার

  2. জাভাস্ক্রিপ্টে Math.asinh() এবং Math.acosh() ফাংশনের ব্যবহার

  3. জাভাস্ক্রিপ্টে Math.imul() ফাংশনের ব্যবহার

  4. জাভাস্ক্রিপ্টে Sentry-এর ব্যবহার কী?