অ্

অ্যারে লুপ মধ্যে JavaScript

9টি অনুশীলনী

অ্যারে লুপ সম্পর্কে

অ্যারে নিয়ে কাজ করার সময়, আপনি মাঝে মাঝে অ্যারের প্রতিটি মানের জন্য কিছু কোড চালাতে চান। এটাকেই বলা হয় অ্যারের উপর ইটারেশন করা বা লুপ করা।

এখানে আমরা সেই ক্ষেত্রটি দেখব যেখানে আপনি প্রক্রিয়ার মধ্যে অ্যারেটি পরিবর্তন করতে চান না। অ্যারে রূপান্তরের জন্য বদলে দেখুন কনসেপ্ট: অ্যারে রূপান্তর।

for লুপ

অ্যারের উপর ইটারেশন করার সবচেয়ে মৌলিক এবং সাধারণত সবচেয়ে দক্ষ উপায় হলো একটি for লুপ ব্যবহার করা, দেখুন কনসেপ্ট: for লুপ।

const numbers = [6.0221515, 10, 23];

for (let i = 0; i < numbers.length; i++) {
  console.log(numbers[i]);
}
// => 6.0221515
// => 10
// => 23

for...of লুপ

যখন আপনি প্রতিটি ইটারেশনে সরাসরি মানটি নিয়ে কাজ করতে চান এবং ইনডেক্সের একেবারেই দরকার নেই, তখন আপনি একটি for...of লুপ ব্যবহার করতে পারেন।

for...of উপরে দেখানো মৌলিক for লুপের মতোই কাজ করে, তবে লুপে একটি ভ্যারিয়েবল হিসেবে ইনডেক্স নিয়ে হিমশিম খাওয়ার বদলে আপনাকে সরাসরি মান দিয়ে দেওয়া হয়।

const numbers = [6.0221515, 10, 23];

// Because re-assigning number inside the loop will be very
// confusing, disallowing that via const is preferable.
for (const number of numbers) {
  console.log(number);
}
// => 6.0221515
// => 10
// => 23

সাধারণ for লুপের মতোই, চলমান ইটারেশন থামাতে আপনি continue এবং লুপের কার্যক্রম পুরোপুরি থামাতে break ব্যবহার করতে পারেন।

অবজেক্টের কী (key) গুলোর উপর ইটারেশন করার জন্য JavaScript-এ for...in লুপও আছে। এটা মনে রাখা জরুরি যে for...of আর for...in একে অন্যের বদলে ব্যবহার করা যায় না, এ বিষয়ে বিস্তারিত জানতে দেখুন MDN ডকুমেন্টেশন।

forEach মেথড

প্রতিটি অ্যারেতে একটি forEach মেথড থাকে, যা দিয়ে অ্যারের এলিমেন্টগুলোর উপরও লুপ করা যায়।

forEach প্যারামিটার হিসেবে একটি ক্যালব্যাক নেয়। অ্যারের প্রতিটি এলিমেন্টের জন্য ক্যালব্যাক ফাংশনটি একবার করে কল করা হয়।

const numbers = [6.0221515, 10, 23];

numbers.forEach((number) => console.log(number));
// => 6.0221515
// => 10
// => 23

উপরের উদাহরণে ক্যালব্যাকটি প্যারামিটার হিসেবে শুধু বর্তমান এলিমেন্টটিই ব্যবহার করে। প্রয়োজনে ক্যালব্যাকটি সর্বোচ্চ তিনটি প্যারামিটার ব্যবহার করতে পারে।

  • চলমান ইটারেশনের মান
  • চলমান ইটারেশনের ইনডেক্স
  • সম্পূর্ণ অ্যারে
const numbers = [6.0221515, 10, 23];

function callback(number, index, fullArray) {
  console.log(number, index, fullArray);
}

numbers.forEach(callback);
// => 6.0221515 0 [ 6.0221515, 10, 23 ]
// => 10 1 [ 6.0221515, 10, 23 ]
// => 23 2 [ 6.0221515, 10, 23 ]

ক্যালব্যাক ছাড়াও, forEach ঐচ্ছিক দ্বিতীয় প্যারামিটার হিসেবে ইটারেশনে ব্যবহার করার জন্য this কনটেক্সট নেয়। MDN-এর "Using thisArg" অংশে একটি উদাহরণ দেখতে পাবেন।

forEach নিয়ে কাজ করার সময় কয়েকটি বিষয় মনে রাখা উচিত।

  • forEach লুপ শুরু হয়ে গেলে ইটারেশন থামানোর কোনো উপায় নেই। এই প্রসঙ্গে break আর continue স্টেটমেন্টের অস্তিত্ব নেই।
  • লুপ শুরু করার পর আপনি যদি অ্যারেটি পরিবর্তন করেন, তাহলে forEach অদ্ভুতভাবে আচরণ করে। শেষে যোগ করা এলিমেন্ট উপেক্ষিত হবে, কোনো এলিমেন্ট মুছে ফেললে অন্যরা বাদ পড়তে পারে, ইত্যাদি। এ ধরনের সমস্যা এড়াতে, ক্যালব্যাকে মূল অ্যারেটি কখনোই পরিবর্তন করবেন না।
  • forEach মেথডের নিজের রিটার্ন ভ্যালু undefined। এর কারণে, শেষে আর কোনো অ্যারে মেথড চেইন করা যায় না।
  • পারফরম্যান্সের জন্য আপনার কোড অপটিমাইজ করার দরকার হলে, এর বদলে for বা for...of ব্যবহারের কথা ভাবুন, কারণ দুটোই প্রায় তিন গুণ দ্রুত।
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি নতুন একটি উইন্ডো বা ট্যাবে খুলবে

অ্যারে লুপ শিখুন