JavaScript তাদের ES6 ভার্সনে যে সকল নতুন Features আমাদের সাথে পরিচয় করিয়েছে তার মধ্যে Spread Operator হচ্ছে অন্যতম।
Spread Operator এর syntax হচ্ছে three dots(…)।
Spread Operator অ্যারে ইলিমেন্ট কে আলাদা আলাদা সিঙ্গেল ইলিমেন্টে রুপান্তর করে ফেলে।
উদাহরণ সরূপ নিচের কোডটি দেখা যেতে পারেঃ
const numbers = [1,2,3,4,5];
console.log( ...numbers ); // output: 1 2 3 4 5
এখন দেখব যে কিভাবে Spread Operator ব্যবহার না করে এই একই আউটপুট পেতে পারি
for( i=0; i<numbers.length; i++){
console.log(i); // output: 1 2 3 4 5
}
এখন আমরা Spread Operator কে মেথডের মাধ্যমে পাস করব। এবং সকল সংখ্যার যোগফল বের করব।
const numbers = [1,2,3,4,5];
function sum (a,b,c,d,e){
return a+b+c+d+e;
}
console.log( sum(...numbers) ); // output: 15
এখন আমরা Spread Operator কে কপি করে নতুন আরেকটা অ্যারে তৈরি করব।
let fruits = ['Apple','Orange','Banana'];
let new_fruits = [...fruits]; // copy an array
console.log(new_fruits); // output: ["Apple", "Orange", "Banana"]
এখন Spread Operator ব্যবহার করে একটি অ্যারের সাথে নতুন আরেকটি অ্যারে সংযুক্ত করব।
let fruits = ['Apple','Orange','Banana'];
let numbers = [1,2,3,4,5];
let new_fruits = [...fruits, ...numbers]; // concatenating arrays
console.log(new_fruits);
// output: ["Apple", "Orange", "Banana",1,2,3,4,5]
এখন একটি অ্যারের সাথে শুধুমাত্র একটি সিঙ্গেল ডাটা সংযুক্ত করব।
let fruits = ['Apple','Orange','Banana'];
let newArray = ['Mango', ...fruits];
console.log(newArray); // output: ["Mango","Apple","Orange","Banana"]
let newArray_2 = [...fruits, 'Jackfruit'];
console.log(newArray_2);
// output: ["Apple","Orange","Banana","Jackfruit"]
ফাংশন কলের মাধ্যমে অ্যারে ইলিমেন্ট কে আলাদা করার উপায় হল
let fruits = ['Apple','Orange','Banana'];
function getAllFruits(f1, f2, f3){
console.log( f1+', '+f2+' and '+f3 )
// output: 'Apple, Orange and Banana'
}
getAllFruits(...fruits);
একই ভাবে আমাদের কোন অবজেক্টকে সহজেই Spread Operator এর মাধ্যমে সংযুক্ত করে নতুন অবজেক্ট তৈরি করতে পারি।
var obj1 = { id: 101, name: 'Jhon Doe' }
var obj2 = { age: 25, country: 'USA'}
const employee = { ...obj1, ...obj2 }
console.log(employee);
//{ "id": 101, "name": "Jhon Doe", "age": 25, "country": "USA" }