• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

forEach로 작성해봤습니다!

20.09.06 22:01 작성 조회수 174

1

window.addEventListener("scroll", () => {
    let boundingRect;
    let temp = 0;

    steps.forEach((step, i) => {
      if (i > ioIndex + 1 || i < ioIndex - 1) return;
      boundingRect = step.getBoundingClientRect();
      temp++;

      if (
        boundingRect.top > window.innerHeight * 0.2 &&
        boundingRect.top < window.innerHeight * 0.8
      ) {
        inactivate();

        currentItem = graphics[step.dataset.index];
        activate();
      }
    });

    console.log("temp", temp);
  });

말 안 듣고 forEach로 만들어봤는데

temp도 2, 3 뜨는 거 보면 잘 동작하는 거 같습니다만

혹시 틀린 점이 있을까요??

답변 1

답변을 작성해보세요.

1

for 문으로 할 경우에는 ioIndex - 1 부터 ioIndex + 1 까지만 루프를 도는데,
작성하신 코드는 일단 루프 자체는 전체를 돌면서 if로 ioIndex를 체크하는 차이가 있습니다.
이렇게 하셔도 별 상관은 없습니다^^

내용이랑 별개로, 이렇게 다른 시도를 해보시는 것은 실력 향상에 도움이 많이 된다고 생각합니다^^