মান লিজিয়ে, এখানে একটি অ্যারে আছে যেটিতে কোনো কোম্পানির এক段时间 ধরে স্টক কেনা-বেচার ডেটা রয়েছে।
const transactions = [ ['AAPL', 'buy', 100], ['WMT', 'sell', 75], ['MCD', 'buy', 125], ['GOOG', 'sell', 10], ['AAPL', 'buy', 100], ['AAPL', 'sell', 100], ['AAPL', 'sell', 20], ['DIS', 'buy', 15], ['MCD', 'buy', 10], ['WMT', 'buy', 50], ['MCD', 'sell', 90] ];
আমরা একটি ফাংশন লিখব যা এই ডেটা নিবে এবং একটি অবজেক্ট রিটার্ন করবে যেটির কী হবে স্টকের নাম (যেমন 'AAPL', 'MCD') এবং ভ্যালু হবে দুইটি নাম্বারের অ্যারে, যেখানে প্রথম এলিমেন্ট হবে টোটাল বাই এবং দ্বিতীয় এলিমেন্ট হবে টোটাল সেল। এর কোড হলো -
উদাহরণ
const transactions = [ ['AAPL', 'buy', 100], ['WMT', 'sell', 75], ['MCD', 'buy', 125], ['GOOG', 'sell', 10], ['AAPL', 'buy', 100], ['AAPL', 'sell', 100], ['AAPL', 'sell', 20], ['DIS', 'buy', 15], ['MCD', 'buy', 10], ['WMT', 'buy', 50], ['MCD', 'sell', 90] ]; const digestTransactions = (arr) => { return arr.reduce((acc, val, ind) => { const [stock, type, amount] = val; if(acc[stock]){ const [buy, sell] = acc[stock]; if(type === 'buy'){ acc[stock] = [buy+amount, sell]; }else{ acc[stock] = [buy, sell+amount]; } }else{ if(type === 'buy'){ acc[stock] = [amount, 0]; }else{ acc[stock] = [0, amount]; } } return acc; }, {}); }; console.log(digestTransactions(transactions));আউটপুট
কনসোলে আউটপুট হবে -
{ AAPL: [ 200, 120 ], WMT: [ 50, 75 ], MCD: [ 135, 90 ], GOOG: [ 0, 10 ], DIS: [ 15, 0 ] }