ধরুন, আমাদের কাছে এই ধরনের বস্তুর একটি অ্যারে আছে -
const arr = [ { 'name': 'JON', 'flight':100, 'value': 12, type: 'uns' }, { 'name': 'JON', 'flight':100, 'value': 35, type: 'sch' }, { 'name': 'BILL', 'flight':200, 'value': 33, type: 'uns' }, { 'name': 'BILL', 'flight':200, 'value': 45, type: 'sch' } ];
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অ্যারে অবজেক্টে নেয়। ফাংশনটি ম্যাপ করা উচিত বস্তু থেকে 'মান' এবং 'টাইপ' কীগুলিকে সরিয়ে দেয় এবং তাদের মানগুলিকে সংশ্লিষ্ট বস্তুতে কী মান জোড়া হিসাবে যুক্ত করে।
অতএব, উপরের ইনপুটের আউটপুটটি এইরকম হওয়া উচিত −
const output = [ { 'name': 'JON', 'flight':100, 'uns': 12, 'sch': 35 }, { 'name': 'BILL', 'flight':200, 'uns': 33, 'sch': 45} ];
আউটপুট
এর জন্য কোড হবে −
const arr = [ { 'name': 'JON', 'flight':100, 'value': 12, type: 'uns' }, { 'name': 'JON', 'flight':100, 'value': 35, type: 'sch' }, { 'name': 'BILL', 'flight':200, 'value': 33, type: 'uns' }, { 'name': 'BILL', 'flight':200, 'value': 45, type: 'sch' } ]; const groupArray = (arr = []) => { const res = arr.reduce(function (hash) { return function (r, o) { if (!hash[o.name]) { hash[o.name] = { name: o.name, flight: o.flight }; r.push(hash[o.name]); } hash[o.name][o.type] = (hash[o.name][o.type] || 0) + o.value; return r; } }(Object.create(null)), []); return res; }; console.log(groupArray(arr));
আউটপুট
এবং কনসোলে আউটপুট হবে −
[ { name: 'JON', flight: 100, uns: 12, sch: 35 }, { name: 'BILL', flight: 200, uns: 33, sch: 45 } ]