티스토리 뷰
앞서서 설명한 forEach와 map은 정말 많이 쓰니 꼭 알아둬야한다.
근데 이번에 설명한 some, every, filter 는 앞의 두녀석보다는 상대적으로 덜 쓰게 된다. (filter는 자주 쓰는거 같다)
심지어 some, every 의 존재 자체를 깜빡한 채 해당 기능을 반복문으로 직접 구현할때도 있었다...
평상시에 정리해두면서 머리속에 팍팍 넣어놔야 겠다.
세가지 메소드 모두 인자로는 (요소, 인덱스, 배열자체) 를 받는다.
예제에서는 요소 하나만 인자로 받아서 설명하도록 하겠다. (실제로도 거의 이렇더라 나는)
some
배열의 요소중 하나라도 특정 조건을 만족하는지 true, false로 리턴해주는 메소드다. (이름 참 명확하다)
참고로 요소를 돌면서 조건을 만족하는 요소를 만나면 그 즉시 true를 리턴한다. (뒤의 요소는 더 이상 볼 필요가 없으니)
let numArr = [1, 2, 3, 4, 5]
// 배열의 요소 중 숫자 3이 있능가?
let ans = numArr.some(number => {
console.log(number)
return number === 3
})
console.log(ans)
// 1
// 2
// 3
// true
every
배열의 모든 요소가 조건을 만족하는지 true, false로 리턴하는 메소드다.
some과는 다르게 false를 리턴하는 요소를 만나면 그 즉시 false를 리턴한다.
let numArr = [1, 2, 3, 4, 5]
// 배열의 모든 요소가 0보다 큰가?
let ans = numArr.every(number => {
return number > 0
})
console.log(ans) // true
중간에 false 를 리턴하는 요소가 있다고 해보자.
let numArr = [1, 2, 3, 4, 5]
let ans = numArr.every(number => {
console.log(number)
return number < 3
})
console.log(ans)
// 1
// 2
// 3
// false
쉽쥬?
filter
배열의 모든 요소를 검사하면서 특정 조건을 만족하는 요소들로만 이루어진 새로운 배열을 리턴한다.
개인적으로는 정말 많이 사용하게 되는 녀석이다. (grid 에서 여러 행을 선택 후 프론트 상에서 삭제를 하는 기능 등...)
위의 every 요소를 filter로 재탕해보겠다.
let numArr = [1, 2, 3, 4, 5]
// 배열의 요소 중 3보다 작은 녀석들
let newArr = numArr.filter(number => {
return number < 3
})
console.log(newArr) // [1, 2]
긴 설명 필요 없이 매우 편하다...
사실 위의 3개 메소드 모두 반복문으로 직접 구현할 수야 있겠지만 알아두면 정말 유용한 녀석들이다.
누군가에겐 이 글이 도움이 되길 바라며... 다음번에는 reduce 에 대해 다뤄보겠다
'개발 > Javascript' 카테고리의 다른 글
async function과 Promise (0) | 2020.04.26 |
---|---|
javascript 의 Concurrency model 과 Event Loop (0) | 2020.02.01 |
callback function (콜백함수)를 Promise 로 변환 (2) | 2019.12.07 |
javascript 자주쓰는 Array 메소드 1편(forEach, map) (0) | 2019.08.05 |
CommonJS와 ES6의 모듈(module) 시스템 (0) | 2019.07.10 |
- Total
- Today
- Yesterday
- KCD2019
- nuxtjs
- jest
- promise
- vue
- javascript
- 테스트코드
- KCD
- 자바스크립트 엔진
- vue.js
- 인텔리제이
- javascript engine
- 야누자이
- 모듈시스템
- CommonJs
- 스프링부트
- event loop
- await
- 빌더패턴
- nuxt
- 이벤트루프
- intellij
- 근본설
- es6
- 근본
- vuejs
- Builder
- springboot
- 프로미스
- 자바스크립트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |