মান লিজিয়ে, আমাদের কাছে নিচের মতো একটি অবজেক্টের অ্যারে আছে:
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' } ];আমাদের একটি ফাংশন লিখতে হবে যা এই অ্যারেটি গ্রহণ করে এবং একটি নতুন অবজেক্টের অ্যারে রিটার্ন করবে যেখানে প্রতিটি অবজেক্টে একটি এক্সট্রা প্রোপার্টি "child" থাকবে যেটি অবশ্যই সেই সকল অবজেক্টের id-এর অ্যারে হবে যেগুলো ঐ নির্দিষ্ট অবজেক্টের ডায়রেক্ট বা ইনডায়রেক্ট চাইল্ড।
তাই, আউটপুট দেখতে হবে নিচের মতো:
[ { 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: [] } ]