JavaScript-এ rest অপারেটর

এই পাঠটি একটি ব্যাখ্যা দিয়ে শুরু করি। এই বিভাগের আগের সমস্ত পাঠে আমি আপনাকে ... অপারেটর সম্পর্কে সম্পূর্ণ সত্য বলিনি।

আসলে, কোডে অবস্থানের উপর নির্ভর করে এই অপারেটরটি হতে পারে হয় spread অপারেটর অথবা rest অপারেটর।

আপনি ইতিমধ্যেই জানেন, যখন spread অপারেটর একটি অ্যারে বা স্ট্রিং এর আগে থাকে, এটি সেগুলোকে পৃথক মানে বিভক্ত করে। Rest অপারেটর, যদিও ... আকারে একই সিনট্যাক্স আছে, তবুও এটি অন্য কাজের জন্য।

এখন দেখি, এটি কী জন্য। ধরুন আমাদের একটি ফাংশন আছে, যা দুটি প্যারামিটার নেয়:

javascriptfunction func(a, b) {
  console.log(a);
  console.log(b);
}

আপনি ইতিমধ্যেই জানতে হবে যে যদি ফাংশনে অতিরিক্ত প্যারামিটার পাঠানো হয়, তবে এটি ত্রুটির কারণ হবে না:

javascriptfunc(1, 2, 3, 4, 5);

rest অপারেটর সমস্ত অতিরিক্ত প্যারামিটার একটি অ্যারে আকারে পেতে দেয়। এর জন্য ফাংশনে আরও একটি প্যারামিটার যোগ করা হয় (অবশ্যই শেষে), যার আগে 3 বিন্দু লেখা হয়:

javascriptfunction func(a, b, ...rest) {
  
}

এই তিনটি বিন্দুই হল rest অপারেটর, এবং ভেরিয়েবলের নাম যেকোনো কিছু হতে পারে, কিন্তু সাধারণত একে rest নামেও ডাকা হয়।

আসুন আমাদের ফাংশনটি অত্যধিক পরিমাণ প্যারামিটার সহ কল করি এবং দেখি কী পড়ে a এবং b প্যারামিটারে, আর কী - rest অবশিষ্টাংশে:

javascriptfunc(1, 2, 3, 4, 5);

function func(a, b, ...rest) {
  console.log(a);    // দেখাবে 1
  console.log(b);    // দেখাবে 2
  console.log(rest); // দেখাবে [3, 4, 5]
}

যদি অতিরিক্ত প্যারামিটার না থাকে, তবে ভেরিয়েবল rest-এ একটি খালি অ্যারে লেখা হবে:

javascriptfunc(1, 2);

function func(a, b, ...rest) {
  console.log(a);    // দেখাবে 1
  console.log(b);    // দেখাবে 2
  console.log(rest); // দেখাবে []
}

ফাংশনে সাধারণত কোন প্যারামিটার নাও থাকতে পারে, তবুও এতে rest যোগ করা যেতে পারে। এই ক্ষেত্রে ফাংশনটি যেকোনো সংখ্যক প্যারামিটার সহ কল করা যেতে পারে এবং সেগুলি সবই rest অ্যারেতে পড়বে:

javascriptfunction func(...rest) {
  console.log(rest);
}