ধরুন, আমাদের কাছে দুটি চাইল্ড এবং প্যারেন্ট JSON অ্যারে আছে এই ধরনের বস্তুর −
const child = [{
id: 1,
name: 'somename',
parent: {
id: 2
},
},
{
id: 2,
name: 'some child name',
parent: {
id: 4
}
}];
const parent = [{
id: 1,
parentName: 'The first',
child: {}
},
{
id: 2,
parentName: 'The second',
child: {}
},
{
id: 3,
parentName: 'The third',
child: {}
},
{
id: 4,
parentName: 'The fourth',
child: {}
}]; আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এই দুটি অ্যারেতে নেয়।
এবং আমাদের ফাংশন চাইল্ড অ্যারে অবজেক্টকে সংশ্লিষ্ট প্যারেন্ট অবজেক্টে একত্রিত করতে হবে।
অতএব, চূড়ান্ত আউটপুট এইরকম কিছু দেখা উচিত -
const output = [
{
id: 1,
parentName: The first,
child: {}
},
{
id: 2,
parentName: The second,
child: {
id: 1,
name: somename,
}
},
{
id: 3,
parentName: The third,
child: {}
},
{
id: 4,
parentName: The fourth,
child: {
id: 2
name: some child name,
}
},
]; উদাহরণ
এর জন্য কোড হবে −
const child = [{
id: 1,
name: 'somename',
parent: {
id: 2
},
},
{
id: 2,
name: 'some child name',
parent: {
id: 4
}
}];
const parent = [{
id: 1,
parentName: 'The first',
child: {}
},
{
id: 2,
parentName: 'The second',
child: {}
},
{
id: 3,
parentName: 'The third',
child: {}
},
{
id: 4,
parentName: 'The fourth',
child: {}
}];
const combineParentChild = (parent, child) => {
const combined = [];
for (let i = 0; i < parent.length; i++) {
for (let j = 0; j < child.length; j++) {
if (child[j].parent.id === parent[i].id) {
parent[i].child.id = child[j].id;
parent[i].child.name = child[j].name;
break;
};
};
combined.push(parent[i])
};
return combined;
};
console.log(combineParentChild(parent, child)); আউটপুট
এবং কনসোলে আউটপুট হবে −
[
{ id: 1, parentName: 'The first', child: {} },
{
id: 2,
parentName: 'The second',
child: { id: 1, name: 'somename' }
},
{ id: 3, parentName: 'The third', child: {} },
{
id: 4,
parentName: 'The fourth',
child: { id: 2, name: 'some child name' }
}
]