14-5. Array 오브젝트(ES5 기준) / true, false를 반환하는 메소드
every()
구분 | 데이터(값) |
---|---|
data | 반복 대상 |
파라미터 | 첫번째 파라미터: 콜백 함수 두번째 파라미터: this로 참조할 오브젝트opt |
반환 | true, false |
- forEach() 처럼 시맨틱 접근
배열의 엘리먼트를 하나씩 읽어가면서
- false를 반환할 때까지 콜백함수 호출 (forEach와의 차이점)
- 즉,
false
가 반환되면 반복 종료 false
를 반환하지 않으면true
반환var value = [20, 10, 30, 40]; var fn = function (value, index, array) { console.log(value); return value > 15; } var result = value.every(fn); console.log("결과:", result); // 20 // 10 // 결과:false
- 처음에 20을 읽으면 15보다 크므로
true
반환
true
이므로 다음 엘리먼트를 읽습니다. - 다음의 10은 15보다 작으므로
false
반환
false
이므로 반복을 종료합니다. - 따라서 [30, 40]은 처리하지 않습니다.
- result 변수에
false
가 할당됩니다. - 배열의 마지막까지 처리했는데
false
가 반환되지 않으면true
가 반환되며 result 변수에 설정됩니다.
- 처음에 20을 읽으면 15보다 크므로
false
가 되는 조건이 배열의 앞에 있을 때 효율성 높음
빨리 끝나니깐!
some()
구분 | 데이터(값) |
---|---|
data | 반복 대상 |
파라미터 | 첫번째 파라미터: 콜백 함수 두번째 파라미터: this로 참조할 오브젝트opt |
반환 | true, false |
- every()처럼 시맨틱 접근
단, true를 반환할 때까지 콜백 함수 호출
- 즉,
true
가 반환되면 반복 자동 종료 true
를 반환하지 않으면false
반환var value = [10, 20, 30, 40]; var fn = function (value, index, array) { console.log(value); return value > 15; } var result = value.some(fn); console.log("결과:", result); // 10 // 20 // 결과:true
- 처음에 10을 읽으면 15보다 작으므로
false
반환
false
이므로 다음 엘리먼트를 읽습니다. - 다음의 20은 15보다 크므로
true
반환
true
이므로 반복을 종료합니다. - 따라서 [30, 40]은 처리하지 않습니다.
- result 변수에
true
가 할당됩니다.
- 처음에 10을 읽으면 15보다 작으므로
- 즉,
true
가 되는 조건이 배열의 앞에 있을 때 효율성 높음
빨리 끝나니깐!
- forEach(), every(), some() 모두 반복을 한다.
- 그리고 콜백함수를 호출한다.
- 하지만 every, some은 반환값이 무엇인지에 따라 콜백함수 호출을 중지시킬 수 있다.