ধরুন, আমাদের কাছে এমন কিছু বস্তুর অ্যারে আছে যাতে কিছু গাড়ি সম্পর্কে তথ্য রয়েছে −
const arr = [
{
"group":[],
"name": "All Makes",
"code": ""
},
{
"group":["Group A"],
"name": "BMW",
"code": "X821"
},
{
"group":["Group B"],
"name": "Audi",
"code": "B216"
},
{
"group":["Group B"],
"name": "Ford",
"code": "P385"
},
{
"group":["Group B", "Group C"],
"name": "Mercedes",
"code": "H801"
},
{
"group":["Group C"],
"name": "Honda",
"code": "C213"
}
]; আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অ্যারে অবজেক্টে নেয়। ফাংশনটি প্রতিটি অবজেক্টের গ্রুপ প্রপার্টির উপর ভিত্তি করে এই অ্যারের অবজেক্টকে গ্রুপ করা উচিত। যদি গ্রুপের সম্পত্তিতে একাধিক উপাদান থাকে তবে সেই বস্তুটি উভয় গ্রুপেই উপস্থিত হওয়া উচিত।
অতএব।], উপরের অ্যারের জন্য, আউটপুট −
এর মত হওয়া উচিতconst output = [
{
"group": "Group A",
"cars": [
{
name: "BMW",
code: "X821"
}
]
},
{
"group": "Group B",
"cars": [
{
name: "Audi",
code: "B216"
},
{
name: "Ford",
code: "P385"
},
{
name: "Mercedes",
code: "H801"
}
]
},
{
"group": "Group C",
"cars": [
{
name: "Mercedes",
code: "H801"
},
{
name: "Honda",
code: "C213"
}
]
}
]; উদাহরণ
এর জন্য কোড হবে −
const arr = [
{
"group":[],
"name": "All Makes",
"code": ""
},
{
"group":["Group A"],
"name": "BMW",
"code": "X821"
},
{
"group":["Group B"],
"name": "Audi",
"code": "B216"
},
{
"group":["Group B"],
"name": "Ford",
"code": "P385"
},
{
"group":["Group B", "Group C"],
"name": "Mercedes",
"code": "H801"
},
{
"group":["Group C"],
"name": "Honda",
"code": "C213"
}
];
const groupTogether = (arr = []) => {
let res = []
res = Object.entries(arr.reduce((acc, { group, ...r }) => {
group.forEach(key => acc[key] = (acc[key] ||
[]).concat({...r}));
return acc;
}, {}))
return res.map(([group, arr]) => ({ group, arr }));
};
console.log(JSON.stringify(groupTogether(arr), undefined, 4)); আউটপুট
এবং কনসোলে আউটপুট হবে −
[
{
"group": "Group A",
"arr": [
{
"name": "BMW",
"code": "X821"
}
]
},
{
"group": "Group B",
"arr": [
{
"name": "Audi",
"code": "B216"
},
{
"name": "Ford",
"code": "P385"
},
{
"name": "Mercedes",
"code": "H801"
}
]
},
{
"group": "Group C",
"arr": [
{
"name": "Mercedes",
"code": "H801"
},
{
"name": "Honda",
"code": "C213"
}
]
}
]