Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 키가 유사한 배열 값의 합계

<시간/>

다음은 일정 기간 동안 일부 회사에서 판매 및 구매한 주식에 대한 데이터가 포함된 배열이 있다고 가정해 보겠습니다.

상수 거래 =[ ['AAPL', '구매', 100], ['WMT', '판매', 75], ['MCD', '구매', 125], ['GOOG', '판매 ', 10], ['AAPL', '매수', 100], ['AAPL', '매도', 100], ['AAPL', '매도', 20], ['DIS', '매수', 15], ['MCD', '매수', 10], ['WMT', '매수', 50], ['MCD', '매도', 90]];

우리는 이 데이터를 받아서 키 asstock 이름(예:'AAPL', 'MCD')과 값을 두 개의 숫자로 구성된 배열로 반환하는 함수를 작성하려고 합니다. 여기서 첫 번째 요소는 총 구매를 나타내고 두 번째 요소는 다음을 나타냅니다. 총 판매. 따라서 이를 수행하는 코드는 -

예시

상수 거래 =[ ['AAPL', '구매', 100], ['WMT', '판매', 75], ['MCD', '구매', 125], ['GOOG', '판매 ', 10], ['AAPL', '매수', 100], ['AAPL', '매도', 100], ['AAPL', '매도', 20], ['DIS', '매수', 15], ['MCD', '매수', 10], ['WMT', '매수', 50], ['MCD', '매도', 90]]; const digestTransactions =(arr) => { 반환 arr.reduce((acc, val, ind) => { const [주식, 유형, 양] =val; if(acc[주식]){ const [구매, 판매] =acc[주식]; if(유형 ==='구매'){ acc[주식] =[구매+금액, 판매]; }else{ acc[주식] =[구매, 판매+금액]; } }else{ if(유형 ==='구매'){ acc[재고] =[금액, 0]; }else{ acc[주식] =[0, 금액]; } } 반환 acc; }, {});};console.log(digestTransactions(transactions)); 

출력

콘솔의 출력은 다음과 같습니다. -

{ AAPL:[ 200, 120 ], WMT:[ 50, 75 ], MCD:[ 135, 90 ], GOOG:[ 0, 10 ], DIS:[ 15, 0 ]}