Array.reduce()

배고픈 징징이 ㅣ 2023. 4. 5. 13:59

1. 설명

배열의 각 요소에 Reducer 함수를 실행하고, 하나의 결과값( 누산값 )을 반환한다.

arr.reduce(callback[, initialValue]);

 

2. 매개변수

  • callback : 배열의 각 요소에 대해 실행할 함수. 네 개의 인수를 받는다.
    • accumulator : 누산기. callback의 반환값을 누적.
    • currentValue : 처리할 현재 요소
    • currentIndex (Optional) : 처리할 현재 요소의 인덱스
    • array (Optional) : reduce를 호출한 배열
  • initialValue (Optional) : callback의 최초 호출에서 첫 번째 인수에 제공하는 값

 

3. 실제 코드

getDragAfterElement(y : number){
    return this.options.reduce(
        (closest, currentValue) => {
            const child = currentValue.el.parentElement;
            const box = child.getBoundingClientRect();
            const offset = y - box.top - box.height / 2;
            if(offset < 0 && offset > closest.offset) return {offset: offset, element: child};
            else return closest;
        }
        , {offset: Number.NEGATIVE_INFINITY}
    ).element;
}
반응형

'Client Side' 카테고리의 다른 글

forEach, for, every, some : 반복문  (0) 2023.04.11
forEach 순차처리의 불가능 (for문, for of문의 순차처리)  (0) 2023.04.06
Drag And Drop  (0) 2023.04.05
Modal Drag  (0) 2023.02.22
Datepicker MinDate  (0) 2023.01.30