ES6 (ECMAScript 2015) এ for...of লুপ এবং Iterables নিয়ে নতুন ফিচারগুলোর পরিচিতি দেওয়া হয়েছে। for...of লুপটি আপনাকে একটি iterable (যেমন: Array, String, Map, Set, ইত্যাদি) এর উপাদানগুলির উপর ইটারেট করতে সাহায্য করে, যা একটি অত্যন্ত কার্যকরী এবং সহজ পদ্ধতি।
Iterables কী?
Iterable হল এমন একটি অবজেক্ট, যা তার উপাদানগুলোকে একে একে অ্যাক্সেস করার জন্য একটি পদ্ধতি সরবরাহ করে। সাধারণত, যেকোনো অবজেক্ট যা Symbol.iterator মেথড প্রদান করে, তাকে iterable বলা হয়।
অথবা, যেসব ডেটা স্ট্রাকচারগুলোর উপাদানগুলোকে একটি করে পাওয়ার সুবিধা রয়েছে, যেমন:
- Arrays
- Strings
- Maps
- Sets
- এবং অন্যান্য iterator সমর্থিত অবজেক্ট
Example of Iterable:
const arr = [1, 2, 3];
console.log(arr[Symbol.iterator]); // [Function: values]
এখানে, arr একটি iterable অবজেক্ট কারণ এটি Symbol.iterator মেথডের মাধ্যমে তার উপাদানগুলিকে একে একে অ্যাক্সেস করতে সক্ষম।
for...of লুপ
for...of লুপটি ES6 এ একটি নতুন ধরনের লুপ যা iterable অবজেক্টের উপাদানগুলো একে একে পাওয়ার জন্য ব্যবহৃত হয়। এটি for...in লুপের থেকে ভিন্ন, কারণ for...in লুপটি অবজেক্টের কী-এর উপর লুপ করে, কিন্তু for...of লুপটি উপাদানগুলোর মানের উপর কাজ করে।
for...of লুপ এর সিনট্যাক্স
for (let item of iterable) {
// item ব্যবহার করুন
}
এখানে, iterable একটি iterable অবজেক্ট এবং item হলো সেই অবজেক্টের প্রতিটি উপাদান।
for...of লুপ এর উদাহরণ
1. Array এর উপাদান দিয়ে for...of লুপ
const numbers = [10, 20, 30, 40];
for (let number of numbers) {
console.log(number);
}
// Output:
// 10
// 20
// 30
// 40
এখানে, numbers অ্যারের প্রতিটি উপাদানকে for...of লুপের মাধ্যমে একে একে আউটপুট করা হয়েছে।
2. String এর উপাদান দিয়ে for...of লুপ
const greeting = "Hello";
for (let char of greeting) {
console.log(char);
}
// Output:
// H
// e
// l
// l
// o
এখানে, greeting স্ট্রিংটির প্রতিটি অক্ষর for...of লুপ দিয়ে আউটপুট করা হয়েছে।
3. Map এর উপাদান দিয়ে for...of লুপ
const map = new Map();
map.set('name', 'John');
map.set('age', 30);
for (let [key, value] of map) {
console.log(`${key}: ${value}`);
}
// Output:
// name: John
// age: 30
এখানে, map (যা একটি Map অবজেক্ট) এর কীগুলি এবং মানগুলির উপর for...of লুপ কাজ করছে।
4. Set এর উপাদান দিয়ে for...of লুপ
const uniqueNumbers = new Set([1, 2, 3, 4]);
for (let number of uniqueNumbers) {
console.log(number);
}
// Output:
// 1
// 2
// 3
// 4
এখানে, uniqueNumbers একটি Set অবজেক্ট, যার প্রতিটি উপাদানকে for...of লুপ দিয়ে আউটপুট করা হয়েছে।
for...of লুপের বৈশিষ্ট্য
- Iterables এর উপর কাজ করে: এটি শুধুমাত্র iterable অবজেক্টের উপাদানগুলো লুপ করে। তাই আপনি Arrays, Strings, Maps, Sets ইত্যাদি এর উপাদানগুলোর উপর লুপ করতে পারবেন।
- উপাদান ব্যবহার সহজ: এটি সরাসরি উপাদানকে অ্যাক্সেস করতে সাহায্য করে, যা
for...inলুপের তুলনায় আরও পরিষ্কার এবং সোজা। - কোনো ইনডেক্সের প্রয়োজন নেই:
for...ofলুপে ইনডেক্স নির্দিষ্ট করা লাগে না, এটি স্বয়ংক্রিয়ভাবে পরবর্তী উপাদানে চলে যায়।
for...in এবং for...of এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | for...in | for...of |
|---|---|---|
| কাজ করে | অবজেক্টের কীগুলির উপর | iterable অবজেক্টের উপাদানগুলির উপর |
| ব্যবহার | অবজেক্টের কীগুলি ইটারেট করতে | Array, String, Map, Set, ইত্যাদি ইটারেট করতে |
| উদাহরণ | for (let key in object) | for (let value of iterable) |
| উপাদান | কীগুলির মান | উপাদানগুলির মান |
উপসংহার
for...of লুপ ES6 এর একটি শক্তিশালী ফিচার, যা iterable অবজেক্টের উপাদানগুলির উপর সহজ এবং কার্যকরীভাবে লুপ করতে সাহায্য করে। এটি কোডকে আরও পরিষ্কার এবং সহজ করে তোলে এবং for...in লুপের তুলনায় অধিক সুবিধাজনক।
Read more