ধরি আমাদের নিচের মতো একটি JSON অ্যারে আছে:
const arr = [{
"data": [
{ "W": 1, "A1": "123" },
{ "W": 1, "A1": "456" },
{ "W": 2, "A1": "4578" },
{ "W": 2, "A1": "2423" },
{ "W": 2, "A1": "2432" },
{ "W": 2, "A1": "24324" }
]
}];
আমাদের এমন একটি ফাংশন লিখতে হবে যা এই অ্যারেকে নিচের JSON অ্যারেতে রূপান্তর করবে:
[
{ "1": [ { "A1": "123" }, { "A1": "456" } ] },
{ "2": [ { "A1": "4578" }, { "A1": "2423" }, { "A1": "2432" }, { "A1": "24324" } ] }
]
উদাহরণ
নিচের কোডটি অনুসরণ করুন:
const arr = [{
"data": [
{ "W": 1, "A1": "123" },
{ "W": 1, "A1": "456" },
{ "W": 2, "A1": "4578" },
{ "W": 2, "A1": "2423" },
{ "W": 2, "A1": "2432" },
{ "W": 2, "A1": "24324" }
]
}];
const groupJSON = (arr = []) => {
const preCombined = arr[0].data.reduce((acc, val) => {
acc[val.W] = acc[val.W] || [];
acc[val.W].push({ A1: val.A1 });
return acc;
}, {});
const combined = Object.keys(preCombined).reduce((acc, val) => {
const temp = {};
temp[val] = preCombined[val];
acc.push(temp);
return acc;
}, []);
return combined;
};
console.log(JSON.stringify(groupJSON(arr), undefined, 4));
আউটপুট
কনসোলে নিচের আউটপুটটি দেখাবে:
[
{
"1": [
{ "A1": "123" },
{ "A1": "456" }
]
},
{
"2": [
{ "A1": "4578" },
{ "A1": "2423" },
{ "A1": "2432" },
{ "A1": "24324" }
]
}
]