array라는 배열이 있고, 이 배열 안에 있는 모든 값들의 제곱을 얻어서 squared라는 배열에 저장하려고 한다.
이럴 때 여러 가지 방법이 있다.
1. for문
const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const squared = [];
for (let i = 0; i < array.length; i++) {
squared.push(array[i] * array[i]);
}
2. forEach문
- forEach는 매개변수에 함수를 넣어서, 배열에서 하나씩 꺼내 함수에 집어넣는다. forEach의 리턴 값은 undefined이므로, 함수 실행 결과를 새로운 배열에 저장하고 싶으면 squared.push()처럼 함수 내에서 넣어주어야 한다.
- 주석 처리한 부분은 화살표 함수로 쓴 것
const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const squared = [];
array.forEach(function(n) {
squared.push(n * n);
});
/*
array.forEach(n => {
squared.push(n * n);
});
*/
3. map
- map은 배열에서 하나씩 꺼내서 괄호 안에 있는 함수에 집어넣은 결과를 리턴한다.
- 아래 코드처럼 화살표 함수를 사용해 square 함수를 정의한 후, map에 square 함수를 콜백으로 넣어줄 수도 있고,
- 간결하게 쓰려면 주석처럼 square 함수를 따로 정의 안 하고 바로 map 안에 넣어줄 수도 있다.
const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const square = n => n * n;
const squared = array.map(square);
// const squared = array.map(n => n * n);
'프론트엔드 > JavaScript' 카테고리의 다른 글
이벤트 전파 관련 질문 (0) | 2021.08.13 |
---|---|
(Javascript) for, for - of, for - in (0) | 2020.07.15 |
(JavaScript) 동기와 비동기 (0) | 2020.07.06 |
(JavaScript) 객체의 비구조화 할당/구조 분해 할당 (0) | 2020.06.17 |
(JavaScript) 배열 (0) | 2020.06.11 |