배열 순회 중에 멈추고 싶을 때! (feat. some)

주형(Jureamer)·2022년 11월 25일
0

배열을 순회하면서 조건을 찾을 때 무지성으로 forEach를 쓰는 경우가 많았다. 그러다 특정 조건이 되면 나오고 싶은데 어라라,, forEach로는 return을 해도, break를 걸어도 나올 수가 없었다!

그래서 배열을 index를 가진 채 순회하다가 멈추고 싶을 때 사용하기 위해 메소드를 찾아보게 되었다. 순회하는 여러가지 메소드 중 고차함수인 map, filter, reduce 등은 새로운 배열을 만들 때 쓰는 것이므로 pass하면 남아있는 메소드는 아래와 같다.

  1. for..of, for...in
  2. every
  3. some
  4. find
  5. findIndex

이 중에 나는 배열의 index를 받아와야했기에 1번은 제외하고, 모든 조건이 아닌 "특정 조건"에 해당 되면 되기에 2번도 제외했다. 그렇담 남은 3, 4, 5번이 남는데 나는 특정조건에 해당되었을 때 안에서 변수를 할당하고 탈출하면 되어서 some을 쓰게 되었다.

...

Object.values(this.collection).some((value, i) => {
    weightedValue += value;
    if (weightedValue >= threshold) {
      	pickedValue = Object.keys(this.collection)[i];
      	return true;
    }
})
...

참고

profile
작게라도 꾸준히 성장하는게 목표입니다.

0개의 댓글