프론트 개발 블로그

Array.prototype.map() 본문

Javascript

Array.prototype.map()

maybe.b50 2020. 2. 19. 13:55
map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수(callback)를 호출하고,
그 결과를 모아서 만든 새로운 배열을 반환합니다. 

 * 기존의 배열은 건드리지 않는다.

 

map() 함수 대신에 forEach(), for문으로도 사용할 수 있다.

arr.map(callback, (currentValue [, index[, array]])[, thisArg])

 

매개변수

callback

새로운 배열 요소를 생성하는 함수. 다음 세 가지 인수를 가진다. 

 

currentValue : 처리할 현재 요소

index : 처리할 현재 요소의 인덱스

array : map()을 호출할 배열 

 

thisArg

callback 을 실행할 때 this 로 사용되는 값. 

 

반환값

배열의 각 요소에 대해 실행한 callback 의 결과를 모은 새로운 배열 


map 은 callback 함수를 각각 요소에 대해 한번씩 순서대로 불러 그 함수의 반환값으로 새로운 배열을 만듭니다.

 

1
2
3
4
5
var numbers = [6102];
var stringNum = numbers.map(function(v) {
    return v + '';
});
console.log(stringNum); // ['6', '10', '2']
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
31
32
33
34
35
36
37
38
39
40
41
42
43
// 예제 0 
var numbers = [6102];
var stringNum = numbers.map(function(v) {
    return v + '';
});
console.log(stringNum); // ['6', '10', '2']
 
// 예제 1 
// 배열에 들어있는 숫자들의 제곱근을 구하여 새로운 배열을 만들기
var numbers = [149];
console.log(roots);  // [1, 2, 3]
 
// 예제2
// map을 활용해 배열 속 객체를 재 구성하기
var kvArray = [
    {key:1, value:10},
    {key:2, value:20},
    {key:3, value:30}
];
var reformattedArray = kvArray.map(function(obj) {
    var rObj = {};
    rObj[obj.key] = obj.value;
    return rObj;
})
console.log(reformattedArray); // [{1: 10}, {2: 20}, {3: 30}]
 
//예제3
// 인자를 받는 함수를 사용하여 숫자 배열 재구성하기
var numbers = [149];
var doubles = numbers.map(function(num) {
    return num * 2;
});
console.log(doubles); // [2, 8, 18]
 
//예제4
// map을 포괄적으로 사용하기 
// 아래 예제는 String에 map을 사용해서 각 문자의 ASCII 인코딩 값을 요소로 갖는 배열을 얻는 방법을 보여줍니다
var map = Array.prototype.map;
var a = map.call('Hello World'function(x) {
    return x.charCodeAt(0);
})
console.log(a);

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map

https://www.zerocho.com/category/JavaScript/post/5acafb05f24445001b8d796d

반응형

'Javascript' 카테고리의 다른 글

구조 분해 할당 표현식  (0) 2020.02.21
[JS문법] 조건문 사용하기  (0) 2020.02.20
Array.prototype.join()  (0) 2020.02.19
Array.prototype.sort()  (0) 2020.02.19
Truthy / Falsy  (0) 2020.02.18