JavaScript에서 array.reduce()는 무엇입니까?



Reduce는 배열의 데이터를 변환하거나 축소하여 단일 출력으로 반환할 수 있는 배열 메서드입니다.

통사론:




array.reduce( reducerfunction ( accumilator, item, index, array ), initalAccumilatorValue )



  • accumulator는 배열을 통해 각 루프에서 변경될 변수입니다.

  • item은 배열의 현재 항목을 나타냅니다.

  • index는 배열에 있는 현재 항목의 인덱스를 나타냅니다.

  • 배열은 초기 배열을 나타냅니다.

  • 감속기 기능은 누산기가 어떻게 수정되는지 보여줍니다.

  • reduce는 어디에 사용할까요?



    사용자에 대한 정보(예: 이름, 연령 등)를 포함하는 입력 배열이 있고 연령별로 그룹화해야 한다고 가정합니다.

        const array = [
            { name: "John", age: "20" },
            { name: "Mary", age: "20" },
            { name: "Peter", age: "50" },
            { name: "Sally", age: "50" },
        ];
    
    


    연령별로 그룹화해야 하는 경우.

        {
            20: ["John","Mary"],
            50: ["Peter","Sally"]
        }
    
    


    array.reduce() 메서드를 사용할 수 있습니다.

    
        const result = array.reduce((acc, curr) => {
        if (!acc[curr.age]) { //chk if age exist in accumilator
            acc[curr.age] = []; //createing empty array at accumelator.age
        }
        acc[curr.age].push(curr.name); // pushing name to appropriate accumulator.age
        return acc;
        }, {});
    
        console.log(result);
    
    


    어떻게 작동합니까?



    array.reduce() 메서드를 호출할 때 두 개의 매개 변수를 전달합니다.
  • 누산기 기능
  • 누산기의 초기 값

  • 누산기 기능은 원하는 최종 감소 값을 얻을 수 있도록 값( 누산기 )에 어떤 작업을 수행해야 하는지 정의합니다.

    위의 예에서



    모든 요소는 누산기 함수에 하나씩 전달됩니다. 이 함수는 주어진 사람의 나이가 누산기에 아직 존재하지 않는지 확인합니다. 그렇다면 사람의 나이에 대한 새 속성을 만들고 빈 목록을 할당합니다. 그것에. 나중에 그 사람의 이름이 나이가 있는 속성으로 푸시됩니다(새로 생성되었거나 이전에 존재함).

    결론


    array.reduce() method는 복잡한 루프 논리를 단순화하고 개발자와 독자에게 훨씬 더 직관적인 프로그래밍 경험을 제공할 수 있는 매우 강력한 배열 방법입니다.

    좋은 웹페이지 즐겨찾기