কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে ডেটা ম্যানিপুলেশন: মাস এবং ক্যাশফ্লো অ্যারে মেলানো


সমস্যা বিবরণ

দুই অ্যারে দেওয়া আছে: মাসের নামের অ্যারে এবং ক্যাশফ্লো অবজেক্টের অ্যারে। এই দুটি মেলিয়ে একটি কম্বাইন্ড অবজেক্ট অ্যারে তৈরি করতে হবে যেখানে প্রতিটি মাসের জন্য ক্যাশফ্লো ভ্যালু থাকবে।

ইনপুট:

const months = ["jan", "feb", "mar", "apr"];
const cashflows = [
  {'month': 'jan', 'value': 10},
  {'month': 'mar', 'value': 20}
];

প্রত্যাশিত আউটপুট:

const output = [
  {'month': 'jan', 'value': 10},
  {'month': 'feb', 'value': ''},
  {'month': 'mar', 'value': 20},
  {'month': 'apr', 'value': ''}
];

সমাধান

const months = ["jan", "feb", "mar", "apr"];
const cashflows = [
  {'month': 'jan', 'value': 10},
  {'month': 'mar', 'value': 20}
];

const combineArrays = (months = [], cashflows = []) => {
  let res = [];
  res = months.map(function(month) {
    return this[month] || { month: month, value: '' };
  }, cashflows.reduce((acc, val) => {
    acc[val.month] = val;
    return acc;
  }, Object.create(null)));
  return res;
};

console.log(combineArrays(months, cashflows));

আউটপুট

[
  { month: 'jan', value: 10 },
  { month: 'feb', value: '' },
  { month: 'mar', value: 20 },
  { month: 'apr', value: '' }
]

কোড ব্যাখ্যা

  • cashflows.reduce দিয়ে মাসকে কী হিসেবে একটি লুকআপ অবজেক্ট তৈরি করা হয়েছে।
  • months.map দিয়ে প্রতিটি মাসের জন্য লুকআপ থেকে ভ্যালু খুঁজে বের করা হয়েছে। না পাওয়া গেলে ডিফল্ট অবজেক্ট রিটার্ন করা হয়েছে।
  • Object.create(null) ব্যবহার করা হয়েছে প্রোটোটাইপ পলিউশন এড়াতে।
  1. জাভাস্ক্রিপ্টে কিউ (Queue) ডেটা স্ট্রাকচার: কনসেপ্ট ও বেসিক

  2. জাভাস্ক্রিপ্টে হ্যাশ টেবিল ডেটা স্ট্রাকচার

  3. জাভাস্ক্রিপ্ট getPrototypeOf() উদাহরণসহ

  4. জাভাস্ক্রিপ্টে ইনহেরিট্যান্স উদাহরণসহ