계정 / ID / 카테고리별로 그룹화하여 값을 합산하는 방법은 무엇입니까?

타이 나라

저는 아직 JavaScript와 ReactJS를 사용하는 초보자입니다.

사용자가 수행하는 일부 작업을 보여주는 목록이 있습니다. 내가 알고 싶은 것은 사용자가 전달한 계정에 따라 총 작업을 계산하는 방법입니다.이 데이터를 어떻게 그룹화합니까?

예를 들어, 계정 사용자 유형 경우 A두개의 트랜잭션 $5$2계정의 총 A일 것이다 $7. 그리고 그가 계정에 B의 거래를 입력 $3하면 계정의 총계는 B이어야합니다. $3아래 이미지를 통해 내가 의미하는 바를 더 쉽게 설명 할 수 있습니다.

그리고 여기에 내 코드가 있습니다.

여기에 이미지 설명 입력

내 ContextAPI :

import React from "react";
import PropTypes from "prop-types";

const AppContext = React.createContext();

const initialState = {
  balance: 0,
  transactions: []
};

const reducer = (state, action) => {
  switch (action.type) {
    case "ADD_TRANSACTION":
      return {
        ...state,
        balance: state.balance + action.payload.amount,
        transactions: [
          {
            account: action.payload.account,
            amount: action.payload.amount,
            balance: state.balance + action.payload.amount
          },
          ...state.transactions
        ]
      };
    default:
      return state;
  }
};

const AppContextProvider = ({ children }) => {
  const [state, dispatch] = React.useReducer(reducer, initialState);

  return (
    <AppContext.Provider value={{ state, dispatch }}>
      {children}
    </AppContext.Provider>
  );
};

AppContextProvider.propTypes = {
  children: PropTypes.node.isRequired
};

export { AppContext, AppContextProvider };

내 거래 목록 :

import React from "react";

import { AppContext } from "../../providers";

const List = () => {
  const { state } = React.useContext(AppContext);

  return (
    <div>
      {state.transactions.map((transaction) => (
        <div key={Math.random()} style={{ marginBottom: "10px" }}>
          <div>
            <span>
              <strong>
                {transaction.amount > 0 ? "Transferred" : "Withdrew"} $
                {Math.abs(transaction.amount)}{" "}
              </strong>{" "}
              {transaction.amount > 0 ? "to " : "from "}
              <strong>{transaction.account}</strong>.
            </span>
          </div>
          <div>
            <span>
              Current <strong>{transaction.account}</strong>'s balance is{" "}
              <strong>${Math.abs(transaction.balance)}</strong>.
            </span>
          </div>
        </div>
      ))}
    </div>
  );
};

export default List;

도움을 주셔서 대단히 감사합니다 !!!

Jamiec

이제 기본적으로 각 계정의 잔액을 추적해야합니다. 따라서 다음과 같이 상태에 저장하십시오 (예 : 계정 a 및 b) :

 balances: {"a": 10, "b": 20}

이제 새로운 거래를 추가 할 때 적절한 잔액을 더하거나 빼고 추적하십시오.

const initialState = {
  balances: {},
  transactions: []
};

const reducer = (state, action) => {
  switch (action.type) {
    case "ADD_TRANSACTION":
      return {
        ...state,
        balances: {
          ...state.balances,
          [action.payload.account]:  (state.balances[action.payload.account] || 0) + action.payload.amount
        },
        transactions: [
          {
            account: action.payload.account,
            amount: action.payload.amount,
            balance:
              (state.balances[action.payload.account] || 0) + action.payload.amount
          },
          ...state.transactions
        ]
      };
    default:
      return state;
  }
};

업데이트 된 샌드 박스 : https://codesandbox.io/s/thirsty-herschel-4j141

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

각 카테고리 및 하위 카테고리별로 제품을 계산하는 방법은 무엇입니까?

분류에서Dev

카테고리별로 그룹화하는 방법, 가장 낮은 콘텐츠에 따라 카테고리를 정렬하는 방법은 무엇입니까?

분류에서Dev

배열의 키로 중첩하여 그룹화하고 자바 스크립트에서 합계, 평균을 계산하는 방법은 무엇입니까?

분류에서Dev

계산 된 열을 여러 열로 그룹화하는 방법은 무엇입니까?

분류에서Dev

특정 값으로 행을 계산하는 방법은 무엇입니까?

분류에서Dev

동일한 값을 가진 문서 수를 계산하고 mongoDB의 다른 필드를 사용하여 그룹화하는 방법은 무엇입니까?

분류에서Dev

날짜별로 그룹화하여 dd / mm / yyyy 형식을 정렬하는 방법은 무엇입니까?

분류에서Dev

알 수없는 열 이름으로 데이터 테이블을 그룹화하고 한 필드의 합계를 계산하는 방법은 무엇입니까?

분류에서Dev

객체 배열에서 여러 속성 값을 계산하고 그룹화하는 방법은 무엇입니까?

분류에서Dev

MongoDB 집계를 사용하여 날짜별로 그룹화 된 합계 필드 값을 얻는 방법은 무엇입니까?

분류에서Dev

반복되는 ID를 삭제하고 Excel에서 그 값을 합산하는 방법은 무엇입니까?

분류에서Dev

행을 그룹화하고 한 열에서 계산하고 다른 열에서 합계를 계산하는 방법은 무엇입니까?

분류에서Dev

조건별로 집계 값을 계산하는 방법은 무엇입니까?

분류에서Dev

그래프와 방정식에서 x로 값의 값을 계산하는 방법은 무엇입니까?

분류에서Dev

node.js를 사용하여 mongodb에서 그룹 이름으로 그룹화 된 집계 값을 얻는 방법은 무엇입니까?

분류에서Dev

주별 열 값 그룹 수로 백분율을 계산하는 방법은 무엇입니까?

분류에서Dev

평균 계산을 기반으로 mysql 쿼리 결과를 그룹화하는 방법은 무엇입니까?

분류에서Dev

각 그룹 (그룹 별)에 대해 가장 큰 2 개의 값을 기반으로 합계를 계산하는 방법은 무엇입니까?

분류에서Dev

category_id로 하위 카테고리의 이름을 나열하는 방법은 무엇입니까?

분류에서Dev

java-stream을 사용하여 두 파일을 비교하고 특정 그룹에서 값의 합계를 찾는 방법은 무엇입니까?

분류에서Dev

계산 된 값을 그리는 방법은 무엇입니까?

분류에서Dev

여러 고유 값을 계산하는 방법은 무엇입니까?

분류에서Dev

특정 ID와 관련된 mySQL의 값을 합산하는 방법은 무엇입니까?

분류에서Dev

합계 고려 조건을 계산하는 방법은 무엇입니까?

분류에서Dev

Excel에서 유사한 행을 그룹화하고 각 그룹의 값을 합계하는 방법은 무엇입니까?

분류에서Dev

Mongo 집계 기능을 사용하여 중첩 그룹으로 합계 및 소계 백분율을 계산하는 방법은 무엇입니까?

분류에서Dev

linq를 사용하여 컬렉션별로 그룹화하고 정렬하는 방법은 무엇입니까?

분류에서Dev

cakephp로보기에서 카테고리별로 제품을 나열하는 방법은 무엇입니까?

분류에서Dev

계산 된 쿼리 셋 값을 수정하는 방법은 무엇입니까? (다 대일 관계 반전)

Related 관련 기사

  1. 1

    각 카테고리 및 하위 카테고리별로 제품을 계산하는 방법은 무엇입니까?

  2. 2

    카테고리별로 그룹화하는 방법, 가장 낮은 콘텐츠에 따라 카테고리를 정렬하는 방법은 무엇입니까?

  3. 3

    배열의 키로 중첩하여 그룹화하고 자바 스크립트에서 합계, 평균을 계산하는 방법은 무엇입니까?

  4. 4

    계산 된 열을 여러 열로 그룹화하는 방법은 무엇입니까?

  5. 5

    특정 값으로 행을 계산하는 방법은 무엇입니까?

  6. 6

    동일한 값을 가진 문서 수를 계산하고 mongoDB의 다른 필드를 사용하여 그룹화하는 방법은 무엇입니까?

  7. 7

    날짜별로 그룹화하여 dd / mm / yyyy 형식을 정렬하는 방법은 무엇입니까?

  8. 8

    알 수없는 열 이름으로 데이터 테이블을 그룹화하고 한 필드의 합계를 계산하는 방법은 무엇입니까?

  9. 9

    객체 배열에서 여러 속성 값을 계산하고 그룹화하는 방법은 무엇입니까?

  10. 10

    MongoDB 집계를 사용하여 날짜별로 그룹화 된 합계 필드 값을 얻는 방법은 무엇입니까?

  11. 11

    반복되는 ID를 삭제하고 Excel에서 그 값을 합산하는 방법은 무엇입니까?

  12. 12

    행을 그룹화하고 한 열에서 계산하고 다른 열에서 합계를 계산하는 방법은 무엇입니까?

  13. 13

    조건별로 집계 값을 계산하는 방법은 무엇입니까?

  14. 14

    그래프와 방정식에서 x로 값의 값을 계산하는 방법은 무엇입니까?

  15. 15

    node.js를 사용하여 mongodb에서 그룹 이름으로 그룹화 된 집계 값을 얻는 방법은 무엇입니까?

  16. 16

    주별 열 값 그룹 수로 백분율을 계산하는 방법은 무엇입니까?

  17. 17

    평균 계산을 기반으로 mysql 쿼리 결과를 그룹화하는 방법은 무엇입니까?

  18. 18

    각 그룹 (그룹 별)에 대해 가장 큰 2 개의 값을 기반으로 합계를 계산하는 방법은 무엇입니까?

  19. 19

    category_id로 하위 카테고리의 이름을 나열하는 방법은 무엇입니까?

  20. 20

    java-stream을 사용하여 두 파일을 비교하고 특정 그룹에서 값의 합계를 찾는 방법은 무엇입니까?

  21. 21

    계산 된 값을 그리는 방법은 무엇입니까?

  22. 22

    여러 고유 값을 계산하는 방법은 무엇입니까?

  23. 23

    특정 ID와 관련된 mySQL의 값을 합산하는 방법은 무엇입니까?

  24. 24

    합계 고려 조건을 계산하는 방법은 무엇입니까?

  25. 25

    Excel에서 유사한 행을 그룹화하고 각 그룹의 값을 합계하는 방법은 무엇입니까?

  26. 26

    Mongo 집계 기능을 사용하여 중첩 그룹으로 합계 및 소계 백분율을 계산하는 방법은 무엇입니까?

  27. 27

    linq를 사용하여 컬렉션별로 그룹화하고 정렬하는 방법은 무엇입니까?

  28. 28

    cakephp로보기에서 카테고리별로 제품을 나열하는 방법은 무엇입니까?

  29. 29

    계산 된 쿼리 셋 값을 수정하는 방법은 무엇입니까? (다 대일 관계 반전)

뜨겁다태그

보관