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);

+ Recent posts