ধরা যাক, এখানে একটি অ্যারে রয়েছে যা নির্দিষ্ট সময়ের মধ্যে কোনো কোম্পানির দ্বারা বিক্রি এবং কেনা স্টক সম্পর্কে কিছু ডেটা রয়েছে৷
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 ]
}