ধরা যাক, আমাদের কাছে এই ধরনের বস্তুর একটি অ্যারে আছে −
const arr = [ { id: 1, parent_id: 0, title: 'Movies' }, { id: 2, parent_id: 0, title: 'Music' }, { id: 3, parent_id: 1, title: 'Russian movies' }, { id: 4, parent_id: 2, title: 'Russian music' }, { id: 5, parent_id: 3, title: 'New' }, { id: 6, parent_id: 3, title: 'Top10' }, { id: 7, parent_id: 4, title: 'New' }, { id: 8, parent_id: 4, title: 'Top10' }, { id: 9, parent_id: 0, title: 'Soft' } ];
আমাদের এমন একটি ফাংশন লিখতে হবে যা এই অ্যারেতে নেয় এবং প্রতিটি বস্তুর সাথে একটি অতিরিক্ত বৈশিষ্ট্যযুক্ত বস্তুর একটি নতুন অ্যারে ফেরত দেয় "শিশু" যা অবশ্যই বস্তুর সমস্ত আইডিগুলির একটি অ্যারে হতে হবে যা একটি নির্দিষ্ট বস্তুর প্রত্যক্ষ বা পরোক্ষ সন্তান।
অতএব, আউটপুট −
এর মত হওয়া উচিত[ { id: 1, parent_id: 0, title: 'Movies', childs: [ 3, 5, 6 ] }, { id: 2, parent_id: 0, title: 'Music', childs: [ 4, 7, 8 ] }, { id: 3, parent_id: 1, title: 'Russian movies', childs: [ 5, 6 ] }, { id: 4, parent_id: 2, title: 'Russian music', childs: [ 7, 8 ] }, { id: 5, parent_id: 3, title: 'New', childs: [] }, { id: 6, parent_id: 3, title: 'Top10', childs: [] }, { id: 7, parent_id: 4, title: 'New', childs: [] }, { id: 8, parent_id: 4, title: 'Top10', childs: [] }, { id: 9, parent_id: 0, title: 'Soft', childs: [] } ]
এখন, এই ফাংশনের জন্য কোড লিখি -
উদাহরণ
const arr = [ { id: 1, parent_id: 0, title: 'Movies' }, { id: 2, parent_id: 0, title: 'Music' }, { id: 3, parent_id: 1, title: 'Russian movies' }, { id: 4, parent_id: 2, title: 'Russian music' }, { id: 5, parent_id: 3, title: 'New' }, { id: 6, parent_id: 3, title: 'Top10' }, { id: 7, parent_id: 4, title: 'New' }, { id: 8, parent_id: 4, title: 'Top10' }, { id: 9, parent_id: 0, title: 'Soft' } ]; const generateChild = arr => { return arr.reduce((acc, val, ind, array) => { const childs = []; array.forEach((el, i) => { if(childs.includes(el.parent_id) || el.parent_id === val.id){ childs.push(el.id); }; }); return acc.concat({...val, childs}); }, []); }; console.log(generateChild(arr));
আউটপুট
কনসোলে আউটপুট হবে −
[ { id: 1, parent_id: 0, title: 'Movies', childs: [ 3, 5, 6 ] }, { id: 2, parent_id: 0, title: 'Music', childs: [ 4, 7, 8 ] }, { id: 3, parent_id: 1, title: 'Russian movies', childs: [ 5, 6 ] }, { id: 4, parent_id: 2, title: 'Russian music', childs: [ 7, 8 ] }, { id: 5, parent_id: 3, title: 'New', childs: [] }, { id: 6, parent_id: 3, title: 'Top10', childs: [] }, { id: 7, parent_id: 4, title: 'New', childs: [] }, { id: 8, parent_id: 4, title: 'Top10', childs: [] }, { id: 9, parent_id: 0, title: 'Soft', childs: [] } ]