मान लीजिए, यहां एक एरे है जिसमें किसी कंपनी द्वारा समय के साथ खरीदे और बेचे गए स्टॉक के बारे में कुछ डेटा है।
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 ] }