array এলেমেন্ট গুলোকে নিয়ে গ্রুপ তৈরি

array এলেমেন্ট গুলোকে নিয়ে গ্রুপ তৈরি

আমাদের অনেক সময় চোখে পরে কোণ কোণ ওয়েবসাইটে a দ্বারা শুরু নামের কতগুলো নাম আছে সেগুলো একজায়গায় দেখায় আবার b দ্বারা শুরু নামের কতগুলো নাম আছে সেগুলো আর এক যায়গায় দেখায় ।

A: [ 'arman', 'akash' ], B: [ 'babul', 'badol' ], C: [ 'caad', 'chinmoy' ], D: [ 'dola', 'dabul' ], E: [ 'emran', 'elon mask' ], R: [ 'rashedul', 'rahad' ], S: [ 'shihab', 'shimu' ]

এটা করার উপায় কি ? খুব সিম্পলে কিছু কোডের মাধ্যমে আমরা এটা করে ফেলতে পারি

আমাদের এখানে নামের একটা array আছে ।

const names = [
 "arman",
 "akash",
 "babul",
 "badol",
 "caad",
 "chinmoy",
 "dola",
 "dabul",
 "emran",
 "elon mask",
 "rashedul",
 "rahad",
 "shihab",
 "shimu",
];

// এখন আমাদের এভাবে সাজাতে হবে 
// A: ["arman", "akash"]
// B: ["babul", "badol"]
// C: ["caad", "chinmoy"]
// D: ["dola", "dabul"]
// E: ["emran", "elon mask"]
// R: ["rashedul", "rahad"] 
// S: ["shihab","shimu"]


const namesGroup = names.reduce((acc, curr) => {
 const firstLetter = curr[0].toUpperCase();
 if (firstLetter in acc) {
  //console.log("name is found", firstLetter);
  acc[firstLetter].push(curr); 
 } else {
  //console.log("name isn't found", firstLetter);
  acc[firstLetter] = [curr];
 }
 return acc;
}, {});

console.log(namesGroup);



// এখন এমন করে শো করাতে চাইলে কি করতে পারি ? 

// ----------- A -----------
// arman
// akash
// ----------- B -----------
// babul
// badol
// ----------- C -----------
// caad
// chinmoy
// ----------- D -----------
// dola
// dabul
// ----------- E -----------
// emran
// elon mask
// ----------- R -----------
// rashedul
// rahad
// ----------- S -----------
// shihab
// shimu


Object.keys(namesGroup).forEach((key) => {
 console.log("-----------", key, "-----------");
 namesGroup[key].forEach((name) => {
  console.log(name);
 });
});

Did you find this article valuable?

Support Rashedul's Article by becoming a sponsor. Any amount is appreciated!