배열과 관련된 작업을 보다 깔끔하게 처리할 수 있는 ES6의 Array helper에 대해서 알아보자.
1) forEach
- 배열의 요소를 하나씩 반환하여 함수를 실행.
const example_array = ['apple','banana','peach','blue berry'];
example_array.forEach((elem)=>{
//배열의 요소를 elem이라는 변수로 하나씩 파라미터로 전달한다.
console.log(elem);
});
2) map
- 배열의 각 요소에 대해 주어진 함수로 처리되어 리턴된 새로운 배열을 만들어 준다.
- return이 없는 요소의 경우는 undefined처리가 됨.
const example_array = ['apple','banana','peach','blue berry'];
//전달된 함수의 return값으로 새로운 배열을 생성!
const new_array = example_array.map((elem)=>`${elem} juice`);
console.log(example_array);
console.log(new_array);
3) filter
- 주어진 함수에 대해 테스트를 통과한 요소로 이루어진 새로운 배열을 만들어 준다.
const example_array = [0,1,2,3,4,5,6,7,8,9,10];
//주어진 함수 조건에 맞는 요소로 이루어진 배열 return
const result_array = example_array.filter((elem)=>elem>5);
console.log(example_array);
console.log(result_array);
4) find
- 주어진 함수를 충족하는 요소를 return해준다. 만약에 조건에 충족하는 배열 요소가 없으면 undefined를 return.
const example_array = [0,1,2,3,4,5,6,7,8,9,10];
const result = example_array.find((elem)=> elem===10);
const result2 = example_array.find((elem)=> elem===11);
console.log(result)//result는 10
console.log(result2)//result2는 undefined
5) every
- 모든 요소가 주어진 함수의 테스트 조건을 충족하는가?
- 모두 테스트를 통과하면 true, 아니면 false return.
const example_array = [0,1,2,3,4,5,6,7,8,9,10];
let result = example_array.every((elem)=>elem>5);
console.log(result);//result 는 false
result = example_array.every((elem)=>elem<=10);
console.log(result);//result 는 true
6) some
- 적어도 하나의 요소가 주어진 함수의 테스트 조건을 충족하는가?
- 테스트를 통과하는 요소가 하나라도 있으면 true, 아니면 false return
const example_array = [0,1,2,3,4,5,6,7,8,9,10];
let result = example_array.some((elem)=>elem===10)
console.log(result);//result는 true;
result = example_array.some((elem)=>elem===11);
console.log(result);//result는 false
7) reduce
- accumulator(누산값)와 배열의 각 요소를 함수 연산하여 한 가지 value로 줄여나가는 method.
const example_array = [0,1,2,3,4,5,6,7,8,9,10];
//reduce
//param1 : 가산 함수
//param2 : accumulator의 초기값
const score = example_array.reduce((acc,elem)=>acc+elem,0);
console.log(score); //55
'Language > Javascript' 카테고리의 다른 글
[Javascript] Promise chaining 에 대하여 (0) | 2022.10.04 |
---|---|
[Javascript] Promise의 기본 (1) | 2022.10.04 |
[Javascript] 싱글스레드 기반 이벤트 루프와 비동기 (0) | 2021.11.18 |
[Javascript] Scope와 변수 선언 (var, let, const) 키워드 차이점 (0) | 2021.11.12 |
[Javascript] Hoisting이란? (0) | 2021.11.11 |