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

জাভাস্ক্রিপ্টে অ্যারে এন্ট্রি ভাগ করে অবজেক্ট তৈরি


মান লজিয়ে, আমাদের নিচের মতো একটি স্ট্রিং লিটারেলের অ্যারে আছে −

const arr = [
  "fiat-palio",
  "fiat-stilo",
  "fiat-strada",
  "fiat-uno",
  "fiat-uno",
  "gm-corsa",
  "gm-celta",
  "ford-fiesta",
  "volkswagen-gol",
  "volkswagen-gol",
  "volkswagen-gol",
  "volkswagen-voyage"
]

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি স্ট্রিং-এর অ্যারে নেয়। উপরের অ্যারে-তে সব এন্ট্রির একটি সাধারণ বিষয় আছে (স্ট্রিং হওয়া ছাড়া), সেগুলো সব একটি ড্যাশ ('-') দিয়ে বিচ্ছিন্ন একটি স্ট্রিং পেয়ার।

ফাংশনটি একটি অবজেক্ট তৈরি করবে যেটিতে কী হবে ড্যাশের আগের অংশ এবং মান হবে অবজেক্ট যেটিতে মূল অ্যারে-তে প্রতিটি স্ট্রিং কতবার আসেছে তার কাউন্ট থাকবে।

সুতরাং, উপরের অ্যারে-র জন্য আউটপুট হবে নিচের মতো −

const output = {
  "fiat": {
    "palio": 1,
    "stilo": 1,
    "strada": 1,
    "uno": 2
  },
  "gm": {
    "corsa": 1,
    "celta": 1
  },
  "ford": {
    "fiesta": 1
  },
  "volkswagen": {
    "gol": 3,
    "voyage": 1
  }
};

উদাহরণ

এটির কোড হবে −

const arr = [
  "fiat-palio",
  "fiat-stilo",
  "fiat-strada",
  "fiat-uno",
  "fiat-uno",
  "gm-corsa",
  "gm-celta",
  "ford-fiesta",
  "volkswagen-gol",
  "volkswagen-gol",
  "volkswagen-gol",
  "volkswagen-voyage"
];
const convertToObject = (arr = []) => {
  let res = arr.reduce((acc, val) => {
    let pair = val.split('-');
    let mark = pair[0];
    let model = pair[1];
    if(!acc.hasOwnProperty(mark)) {
      acc[mark] = {};
      acc[mark][model] = 1;
    } else {
      if(acc[mark].hasOwnProperty(model)) {
        acc[mark][model] += 1;
      } else {
        acc[mark][model] = 1;
      }
    }
    return acc;
  }, {})
  return res;
}
console.log(convertToObject(arr));

আউটপুট

কনসোলে আউটপুট হবে −

{
  fiat: { palio: 1, stilo: 1, strada: 1, uno: 2 },
  gm: { corsa: 1, celta: 1 },
  ford: { fiesta: 1 },
  volkswagen: { gol: 3, voyage: 1 }
}

  1. জাভাস্ক্রিপ্ট array.entries() মেথড

  2. জাভাস্ক্রিপ্ট অবজেক্টকে নতুন অ্যারেতে ফরম্যাট করা

  3. জাভাস্ক্রিপ্টে Object.keys().map() VS Array.map()

  4. জাভাস্ক্রিপ্টে অবজেক্টের অ্যারেতে প্রোপার্টি নাম রিপ্লেস করা