103 of 264 menu

map 메서드

map 메서드는 배열의 각 요소에 주어진 함수를 적용할 수 있게 합니다. 이때 메서드는 원본 배열을 변경하지 않고, 변경된 새로운 배열을 반환합니다.

메서드는 매개변수로 함수를 받으며, 이 함수는 배열의 각 요소에 대해 실행됩니다. 이 함수가 return을 통해 반환하는 값이 해당 배열 요소의 새로운 값이 됩니다 (예제 참조).

함수에는 3개의 매개변수를 전달할 수 있습니다. 이러한 매개변수가 존재하는 경우 (필수는 아닙니다), 첫 번째에는 자동으로 배열 요소가, 두 번째에는 배열 내 인덱스(위치)가, 세 번째에는 배열 자체가 전달됩니다.

구문

let 새로운배열 = 배열.map(function(요소, 인덱스, 배열) { 코드 return 변경된요소; });

예제

초기 배열의 각 요소에 해당하는 값이 두 배인 새 배열을 만들어 봅시다:

let arr = [1, 2, 3, 4, 5]; let res = arr.map(function(elem) { return elem * 2; }); console.log(res);

코드 실행 결과:

[2, 4, 6, 8, 10]

예제

요소 값에 배열 내 인덱스를 곱한 값으로 이루어진 배열을 만들어 봅시다:

let arr = [1, 2, 3, 4, 5]; let res = arr.map(function(elem, index) { return elem * index; }); console.log(res);

코드 실행 결과:

[0, 2, 6, 12, 20]

예제

필요한 경우 세 번째 매개변수로 배열 자체를 전달할 수 있습니다:

let arr = [1, 2, 3, 4, 5]; let res = arr.map(function(elem, index, arr) { // 여기에서 arr 배열에 접근 가능합니다 });

예제

map 메서드는 다차원 배열을 순회하는 데에도 사용할 수 있습니다. 예를 들어 다음과 같은 배열이 주어졌다고 가정해 봅시다:

let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

이 배열을 map을 사용하여 순회하고 그 요소들을 콘솔에 출력해 봅시다:

let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; let result = arr.map(function(elem) { console.log(elem); });

결과적으로 console.log는 먼저 [1, 2, 3]을, 그다음 [4, 5, 6]을, 그리고 [7, 8, 9]을 출력할 것입니다.

보시다시피, elem 변수에는 하위 배열들이 담깁니다. 이제 각 하위 배열에 map 메서드를 적용하고 각 요소를 제곱해 봅시다:

let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; let result = arr.map(function(elem) { return elem.map(function(num) { return num * num; }); }); console.log(result);

함께 보기

  • forEach 메서드,
    배열의 각 요소에 함수를 적용합니다
  • filter 메서드,
    배열 요소를 필터링할 수 있게 합니다
  • some 메서드와 every 메서드,
    배열 검사를 수행합니다
  • reduce 메서드와 reduceRight 메서드,
    배열을 단일 값으로 축소합니다
한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부