নেস্টেড অ্যারে অবজেক্ট থেকে কী অনুযায়ী ভ্যালু গ্রুপ করে একটি অবজেক্ট তৈরি করা।
ইনপুট ডেটা
const parentArray = [
[{key: 123, value: 'India'}, {key: 124, value: 'USA'}, ...],
[{key: 124, value: 'Kenya'}, {key: 126, value: 'UK'}, ...]
];
সমাধান
const groupByKey = (parentArray) => {
const map = {};
for (const subArray of parentArray) {
for (const { key, value } of subArray) {
if (map[key]) {
map[key].push(value);
} else {
map[key] = [value];
}
}
}
return map;
};
// Reduce ব্যবহার করে
const groupByKeyReduce = (parentArray) => {
return parentArray.reduce((map, subArray) => {
subArray.forEach(({ key, value }) => {
map[key] = [...(map[key] || []), value];
});
return map;
}, {});
};
// Map অবজেক্ট ব্যবহার (মডার্ন)
const groupByKeyMap = (parentArray) => {
const map = new Map();
for (const subArray of parentArray) {
for (const { key, value } of subArray) {
if (map.has(key)) {
map.get(key).push(value);
} else {
map.set(key, [value]);
}
}
}
return Object.fromEntries(map); // অবজেক্টে রূপান্তর
};
// টেস্ট
const parentArray = [
[{key: 123, value: 'India'}, {key: 124, value: 'USA'},
{key: 125, value: 'Japan'}, {key: 126, value: 'Denmark'},
{key: 127, value: 'Austria'}],
[{key: 124, value: 'Kenya'}, {key: 126, value: 'UK'},
{key: 123, value: 'Germany'}, {key: 127, value: 'Spain'},
{key: 125, value: 'Portugal'}]
];
console.log(groupByKey(parentArray));
/*
{
'123': ['India', 'Germany'],
'124': ['USA', 'Kenya'],
'125': ['Japan', 'Portugal'],
'126': ['Denmark', 'UK'],
'127': ['Austria', 'Spain']
}
*/
ব্যবহারিক ক্ষেত্রে
- ডাটাবেস কুয়েরি রেজাল্ট গ্রুপিং
- API রেসপন্স ট্রান্সফরমেশন
- ডেটা এনালাইসিস ও রিপোর্টিং
উৎপাদন
{
'123': [ 'India', 'Germany' ],
'124': [ 'USA', 'Kenya' ],
'125': [ 'Japan', 'Portugal' ],
'126': [ 'Denmark', 'UK' ],
'127': [ 'Austria', 'Spain' ]
}