আমাদের অনেক সময় চোখে পরে কোণ কোণ ওয়েবসাইটে 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);
});
});