(কোডিং জে এস)Coding JS
  • কোডিং JS
  • সূচিপত্র(Index)
  • ভূমিকা
  • লেখক পরিচিতি(Writer Intro)
  • ইতিহাস
  • জাভাস্ক্রিপ্টের বিস্তার কত দূর?
  • কাদের জন্য জাভাস্ক্রিপ্ট?
  • এনভায়রনমেন্ট সেটআপ
  • ব্রাউজার পরিচিতি
  • ভাল এডিটর বা আইডিই
  • জাভাস্ক্রিপ্টের ইঞ্জিন (JS Engine)
  • প্রথম প্রোগ্রাম = হ্যালো বাংলাদেশ
  • সিনট্যাক্স নিয়ে যত কথা।
  • ভেরি + এবল = ভেরিয়্যাবল কি?
  • ডেটা টাইপ
    • প্রিমিটিভ ডাটা টাইপ(Primitive data type)
      • বুলিয়ান (Boolean)
      • আন্ডিফাইন্ড (Undefined)
      • নাল (Null)
      • নাম্বার (Number)
      • বিগ ইন্টিজার (BigInt)
      • স্ট্রিং (String)
      • সিম্বল (Symbol)
    • নন-প্রিমিটিভ ডাটা টাইপ(Non-primitive data type)
      • অব্জেক্ট (Object)
      • অ্যারে(Array)
  • অপারেটর
  • কন্ডিশনাল কন্ট্রোল ফ্লো(Conditional Control flow)
  • লুপ এবং ইটারেশন(Loop & Iteration)
    • 🔃ফর লুপ(For loop)
    • 🔃ও্যাইয়ল লুপ (While Loop)
    • 📿পুনারাবৃত্তি (Iteration)
  • ফাংশন (Function)
    • রেগুলার ফাংশন (Regular Function)
    • অ্যারো ফাংশন(Arrow Function)
    • নেস্টেড ফাংশন ( Nested Function)
    • ক্লোজার ফাংশন(Closures Function)
    • আই. আই. এফ. ই. (IIFE)
    • হাইয়ার অর্ডার ফাংশন (Higher Order Function)
    • কারিং ফাংশন (Currying function)
    • এন এফ ই (NFE)
    • রিকার্সিভ ফংশন (Recursive Function)
    • জেনারেটর ফাংশন (Generator Function)
  • ক্লাস ও অবজেক্ট অরিয়েন্টেড (class & OOP)
    • মেম্বার ফাংশন (Member Function)
    • ইনহেরিটেন্স (Inhertance)
    • এনসকেপসুলেশন (Encapsulations)
    • অবস্ট্রাকশন(Abstraction)
    • পলিমরফিজম (Polymorphism)
  • কলব্যাক ফাংশন (callback function)
  • প্রমিস (Promise)
  • Async এবং await (Async & Await)
  • এজ্যাক্স (Ajax)
  • ফেচ (fetch)
  • ওয়েভ এপি আই(Web API)
    • ওয়েব স্টোরেজ (Web Storage)
      • বিস্কিটের টুকরো (Cookies)
      • সেশন (Session)
    • হিস্ট্রি এপি আই (History API)
    • জিওলোকেশন এপি আই (Geolocation API)
    • ওয়ার্কার এপি আই (Workers API)
    • ফর্ম এপি আই (Form API)
  • জে এস ডোম(JS DOM)
  • জে এস স্টাইল (JS Style)
  • এপিআই কী? (What is API)
    • SOAP API
    • রেস্ট এপি আই(REST API)
  • ফ্রেমওয়ার্ক লাইব্রেরী নিয়ে খোশ গল্প
  • জাভাস্ক্রিপ্টের বিল্ডইন কী ওয়ার্ড(Javascript Build in keyword)
  • কৃতজ্ঞতা স্বীকার
Powered by GitBook
On this page
Edit on GitHub
  1. লুপ এবং ইটারেশন(Loop & Iteration)

পুনারাবৃত্তি (Iteration)

জাভাস্ক্রিপ্টে অনেক গুলো বিল্ড ইন উচ্চ আদেশ (Higher Order Function) ফাংশন আছে । যেমনঃ forEach, map, filter, find, reduce এবং every. পুনারাবৃত্তি (Iteration) বিষয়টা খুবই মিল মিল বিষয় লুপের সাথে। লুপ হচ্ছে একটি নির্দিষ্ট কন্ট্রোল কাঠামো যেইটা একটি নির্দিষ্ট ব্লককে নির্দিষ্ট শর্ত এর ভিত্তিতে পুনরাবৃতি করে। আর পুনারাবৃত্তি (Iteration) হচ্ছে একটি বিন্যাস(Array) এর উপর ভিত্তি করে বা কিছু উপদানের উপর ভিত্তি করে সেইটাকে একে একে দেখানো বা ব্লক উপদান গুলোর মধ্য দিয়ে যাওয়া ।

জানি উপরের বিষয় গুলো বুঝতে একটু কষ্ট হয়েছে অনেকের কারণ বিষয়টা অত সহজ না। আমি এই বিষয় গুলো আরো বিস্তারিত উচ্চ আদেশ(Higher Order Function) আধ্যায়ে আলোচনা করেছি। পড়তে থাকুন আস্তে আস্তে বুঝে যাবেন আমাদের কোন তারা নেই ।

এখন আসেন জাভাস্ক্রিপ্টের পুনারাবৃত্তি (Iteration) নিয়ে কয়েকটা উদাহরন দেখি।

ধরুন আপনার কাছে একটা বাড়ির দৈনিক খরচের তালিকা আছে। নিচের মত করে ।

const dailyHomeCosts = [
  50, 60, 45, 55, 70, 65, 80, 75, 60, 55,
  70, 75, 65, 80, 90, 85, 70, 55, 75, 80,
  60, 65, 70, 75, 55, 50, 65, 80, 75, 60
];

এখন আপনার এইখান থেকে বের করতে হবে আপনি ৮০ টাকা বা তার উপরে বাজার করেছেন সেই খরচ গুলো

চলুন বেশি দেরি না করে বের করে ফেলি।

উদাহরণঃ
const highestCost = dailyHomeCosts.filter((cost)=>cost>=80)
console.log(highestCost )
Output:
[ 80, 80, 90, 85, 80, 80 ]

ব্যাস সে কিন্তু আপনাকে সাথে সাথে ৮০ টাকা বা তার উপরে বাজার বাজার খরচ গুলো দিয়ে দিবে।

চলুন এবার আমরা এই ফাংশন গুলোর ব্যাবহার দেখব। প্রথমেই আমরা কিছু নাম্বার নিয়ে নেইঃ

const numbers = [1,2,3,4,5,6,7,8]

forEach: একটা কলব্যাক ফাংশন নেয় এবং সেই ফাংশন আসলে অ্যারে এর প্রতিটা ইলিমেন্টের মধ্য দিয়ে যাবে কিন্তু কোন কিছু আপনাকে ফেরত বা রিটার্ন দিবে না। মানে হলো সে আপনাকে নতুন কোন অ্যারে দিবে না।

সিনট্যাক্সঃ
originalArray.forEach((currentValue, index, array) => {
  // perform some operation using currentValue
});
উদাহরণঃ
numbers.forEach(number => {
  console.log(number * 2);
});

map: একটা কলব্যাক ফাংশন নেয় এবং সেই আসলে অ্যারে এর প্রতিটা ইলিমেন্টের মধ্য দিয়ে যাবে এবং আপনি যে অ্যারেটা দিয়েছেন সেইটার উপর ভিত্তি করে আপনাকে একটা নতুন অ্যারে ফেরত দিবে। মনে রাখা শ্রেয় যে আপনাকে যে অ্যারে ফেরত দিবে সেইটার length আর map কে দেওয়া অ্যারে এর length কিন্তু সমান হবে।

সিনট্যাক্সঃ
const newArray = originalArray.map((currentValue, index, array) => {
  // return transformed value based on currentValue
});
উদাহরনঃ
const doubledNumbers = numbers.map(number => number * 2);
console.log(doubledNumbers); 
// Output: [2, 4, 6, 8, 10]

filter: এইটা ও একটা কলব্যাক ফাংশন নিবে এবং আপানার ফাংশনের ভ্যালু যে সমস্ত স্টেটমেন্টের জন্য সত্য হবে সেসকল উপদানের জন্য নতুন একটি অ্যারে ফেরত বা রিটার্ন দিবে।

সিনট্যাক্সঃ
const newArray = originalArray.filter((currentValue, index, array) => {
  // return true or false based on some condition using currentValue
});
উদাহরনঃ
const evenNumbers = numbers.filter(number => number % 2 === 0);
console.log(evenNumbers); // Output: [2, 4]

find: এইটা আগের মত করে একটা কলব্যাক ফাংশন নিবে কিন্তু যে স্টেটমেন্টের জন্য সত্য শুধু মাত্র সেই ভ্যালু টা ফেরত দিবে বা রির্টান করবে

সিনট্যাক্সঃ
const result = originalArray.find((currentValue, index, array) => {
  // return true or false based on some condition using currentValue
});
উদাহরনঃ
const firstEven = numbers.find(number => number % 2 === 0);
console.log(firstEven); // Output: 2

reduce: এইটা দুইটা প্যারামিটার নেয় প্রথম প্যারামিটার হিসেবে reduce একটা কলব্যাক ফাংশন নেয় এবং ঐ কলব্যাক ফাংশন দুইটা প্যারামিটার নেয় আর একটা হচ্ছে accumulator আরেকটা হচ্ছে currentvalue আর ২য় প্যারামিটার টা হচ্ছে initialvalue ।

সিনট্যাক্সঃ
const result = originalArray.reduce((accumulator, currentValue, index, array) => {
  // return updated accumulator value based on currentValue
}, initialValue);
উদাহরনঃ
const sum = numbers.reduce((accumulator, currentNumber) =>{
   return accumulator + currentNumber, 0);
}
console.log(sum); // Output: 15

every: এইটা একটা কলব্যাক ফাংশন নেয় এবং ঐ ফাংশনের স্টেটমেন্টে লিখা প্রত্যকটি উপদানের জন্য যদি সত্য হয় তাহলে every true রিটার্ন করে অথবা false রিটার্ন করে ।

সিনট্যাক্সঃ
const result = originalArray.every((currentValue, index, array) => {
  // return true or false based on some condition using currentValue
});
উদাহরণঃ
const allEven = numbers.every(number => number % 2 === 0);
console.log(allEven); // Output: true

some: একটা কলব্যাক ফাংশন নেই এবং ঐ ফাংশনে লিখা কোন একটা স্টেটমেন্ট ও যদি সত্য হয় তাহলে true রিটার্ন করে নতুবা false রির্টান করে।

সিনট্যাক্সঃ
const result = originalArray.some((currentValue, index, array) => {
  // return true or false based on some condition using currentValue
});
উদাহরনঃ
const hasEven = numbers.some(number => number % 2 === 0);
console.log(hasEven); // Output: true

reduceRight: এইটা একটা কলব্যাক ফাংশন নেই এবং reduce টিক উল্টো কাজ করে মানে সে অ্যারে এর শেষ থাকে কাজ করে এইখানে accumulator শেষ থেকে এবং ভ্যালু হোল্ড করে

সিনট্যাক্সঃ
const result = originalArray.reduceRight((accumulator, currentValue, index, array) => {
  // return updated accumulator value based on currentValue
}, initialValue);
উদাহরণ
const result = numbers.reduceRight((acc, num) => acc - num, 0);
console.log(result); // Output: -2 (0 - 4 - 3 - 2 - 1)
Previousও্যাইয়ল লুপ (While Loop)Nextফাংশন (Function)

Last updated 1 year ago

📿