Rest অপারেটর কি এবং এর ব্যবহার

Rest এবং Spread অপারেটর - জাভাস্ক্রিপ্ট ইএস৬ (ES6) - Web Development

337

Rest অপারেটর (প্রতীক: ...) ES6 (ECMAScript 2015) এর একটি গুরুত্বপূর্ণ ফিচার, যা একটি ফাংশনে একাধিক আর্গুমেন্ট একত্রিত করে একটি অ্যারে বা অবজেক্টে রূপান্তর করতে ব্যবহৃত হয়। এটি প্যারামিটার বা অবজেক্ট প্রপার্টি হিসাবে ব্যবহার করা যেতে পারে এবং একটি ফাংশন বা ডাটা স্ট্রাকচারে অবশিষ্ট উপাদানগুলিকে সংগ্রহ করার জন্য কাজ করে।

Rest অপারেটরের সিনট্যাক্স

// প্যারামিটার হিসেবে
const functionName = (...args) => {
  // কোড
}

// অবজেক্ট ডেস্ট্রাকচারিং এর সময়
const { key1, key2, ...rest } = object;

Rest অপারেটরের ব্যবহার

১. ফাংশন প্যারামিটার হিসেবে Rest অপারেটর

যখন একটি ফাংশনে অজস্র আর্গুমেন্ট হতে পারে, তখন Rest অপারেটর ব্যবহার করা হয়। এটি ফাংশনের প্যারামিটারগুলির অতিরিক্ত মানকে একটি অ্যারে হিসেবে সংগ্রহ করে।

উদাহরণ:

function sum(...numbers) {
  return numbers.reduce((acc, num) => acc + num, 0);
}

console.log(sum(1, 2, 3));  // 6
console.log(sum(5, 10, 15, 20));  // 50

এখানে, ...numbers Rest অপারেটর হিসেবে ব্যবহৃত হয়েছে এবং ফাংশনের মধ্যে যে কোনো সংখ্যক আর্গুমেন্টকে অ্যারে হিসেবে সংগ্রহ করছে। এরপর reduce() মেথড ব্যবহার করে সেই অ্যারের সকল সংখ্যার যোগফল বের করা হয়েছে।

আরও উদাহরণ:

function greet(message, ...names) {
  console.log(message);
  names.forEach(name => console.log(`Hello, ${name}!`));
}

greet("Welcome", "John", "Doe", "Jane");  
// Output:
// Welcome
// Hello, John!
// Hello, Doe!
// Hello, Jane!

এখানে, ...names দিয়ে অতিরিক্ত প্যারামিটারগুলোকে একটি অ্যারে হিসাবে সংগ্রহ করা হয়েছে।


২. ডেস্ট্রাকচারিং এর সাথে Rest অপারেটর

Rest অপারেটরটি ডেস্ট্রাকচারিং এর সাথে ব্যবহার করলে আপনি অবজেক্ট বা অ্যারের অতিরিক্ত উপাদানগুলি সহজে সংগ্রহ করতে পারেন। এটি সাধারণত অবজেক্ট বা অ্যারে থেকে কিছু উপাদান বের করার পর অবশিষ্ট উপাদানগুলো একত্রিত করতে ব্যবহৃত হয়।

অ্যারে ডেস্ট্রাকচারিং এর সাথে:
const numbers = [1, 2, 3, 4, 5];

// প্রথম দুটি উপাদান আলাদা করার পর বাকিগুলোর জন্য Rest অপারেটর
const [first, second, ...rest] = numbers;

console.log(first);   // 1
console.log(second);  // 2
console.log(rest);    // [3, 4, 5]

এখানে, প্রথম দুটি উপাদানকে আলাদা করা হয়েছে, এবং বাকি উপাদানগুলোকে rest অ্যারেতে সংরক্ষণ করা হয়েছে।

অবজেক্ট ডেস্ট্রাকচারিং এর সাথে:
const person = { name: "John", age: 30, country: "USA", profession: "Engineer" };

// name এবং age আলাদা করার পর বাকিগুলোর জন্য Rest অপারেটর
const { name, age, ...otherInfo } = person;

console.log(name);     // John
console.log(age);      // 30
console.log(otherInfo);  // { country: 'USA', profession: 'Engineer' }

এখানে, name এবং age আলাদা করে, অবশিষ্ট প্রপার্টিগুলোকে otherInfo অবজেক্টে জমা করা হয়েছে।


৩. Rest অপারেটর এবং Spread অপারেটর

Rest অপারেটর এবং Spread অপারেটর (প্রতীক: ...) দেখতে একে অপরের মতো, তবে তাদের কাজের মধ্যে পার্থক্য রয়েছে।

  • Rest অপারেটর: এটি ফাংশনে বা ডেস্ট্রাকচারিংয়ের মধ্যে অবশিষ্ট উপাদানগুলো সংগ্রহ করতে ব্যবহৃত হয়।
  • Spread অপারেটর: এটি একটি অ্যারে বা অবজেক্টের উপাদানগুলোকে আলাদা করে নতুন অ্যারে বা অবজেক্টে প্রয়োগ করতে ব্যবহৃত হয়।

Spread অপারেটর উদাহরণ:

const numbers = [1, 2, 3];
const newNumbers = [...numbers, 4, 5];
console.log(newNumbers);  // [1, 2, 3, 4, 5]

এখানে, Spread অপারেটর ব্যবহার করে numbers অ্যারের উপাদানগুলোকে নতুন অ্যারে newNumbers তে কপি করা হয়েছে।


৪. Rest অপারেটর এবং ফাংশন Overloading

ফাংশনগুলিতে বিভিন্ন সংখ্যক প্যারামিটার গ্রহণ করার জন্য Rest অপারেটর একটি সহজ এবং কার্যকরী পদ্ধতি। এতে ফাংশনটি একটি পরিবর্তনযোগ্য সংখ্যক আর্গুমেন্ট গ্রহণ করতে পারে।

function greetMessage(message, ...names) {
  return `${message}, ${names.join(", ")}!`;
}

console.log(greetMessage("Hello", "John", "Jane", "Doe"));  // "Hello, John, Jane, Doe!"

এখানে, ...names দিয়ে যেকোনো সংখ্যক নামের প্যারামিটারকে একত্রিত করে names অ্যারে তৈরি করা হয়েছে।


Rest অপারেটরের সুবিধা

  1. ফাংশনগুলিতে পরিবর্তনশীল প্যারামিটার: একাধিক আর্গুমেন্ট নেওয়ার জন্য Rest অপারেটর সুবিধাজনক।
  2. ডেস্ট্রাকচারিংয়ের মধ্যে অবশিষ্ট মান সংগ্রহ: এটি অবজেক্ট বা অ্যারের অবশিষ্ট উপাদান সংগ্রহ করতে সহায়ক।
  3. কোডকে পরিষ্কার এবং সংক্ষিপ্ত করা: ডেস্ট্রাকচারিং বা প্যারামিটারগুলির মধ্যে Rest অপারেটর ব্যবহার কোডকে সংক্ষিপ্ত, পরিষ্কার এবং পড়তে সহজ করে তোলে।

সারাংশ

Rest অপারেটর (...) ES6-এর একটি শক্তিশালী ফিচার, যা ফাংশন প্যারামিটার এবং ডেস্ট্রাকচারিং এ অবশিষ্ট উপাদানগুলো সংগ্রহ করতে ব্যবহৃত হয়। এটি অ্যারে বা অবজেক্টের অতিরিক্ত উপাদানগুলিকে একটি একক অ্যারে বা অবজেক্টে রূপান্তর করার জন্য একটি কার্যকর পদ্ধতি। এর মাধ্যমে কোডকে সংক্ষিপ্ত, পরিষ্কার এবং আরও কার্যকরী করা সম্ভব হয়।

Content added By
Promotion

Are you sure to start over?

Loading...