TypedArray 객체의 map() 메서드는 콜백 함수를 인수로 받아, 타입 배열(typed array)의 모든 요소에 대해 해당 함수를 순서대로 호출하고, 그 결과값들로 이루어진 새로운 타입 배열을 반환합니다. 원본 배열은 변경되지 않는다는 점이 특징입니다.
문법
typedArray.map(callbackFn[, thisArg])
매개변수
- callbackFn: 각 요소에 대해 실행할 함수입니다. 이 함수는 currentValue(현재 처리 중인 요소), index(요소의 인덱스), array(map을 호출한 원본 배열) 세 가지 인수를 전달받습니다.
- thisArg (선택 사항): 콜백 함수를 실행할 때
this로 사용할 값입니다.
예제
다음 예제에서는 Int32Array 타입 배열의 각 요소를 제곱하는 콜백 함수를 map() 메서드에 전달하여 결과를 확인합니다.
<html>
<head>
<title>JavaScript TypedArray map Method</title>
</head>
<body>
<script type="text/javascript">
var int32View = new Int32Array([11, 5, 13, 4, 15, 3, 17, 2, 19, 8]);
document.write("타입 배열의 내용: " + int32View);
document.write("<br>");
function square(ele) {
return ele * ele;
}
var result = int32View.map(square);
document.write("각 요소를 제곱한 결과: " + result);
</script>
</body>
</html>
실행 결과
타입 배열의 내용: 11,5,13,4,15,3,17,2,19,8 각 요소를 제곱한 결과: 121,25,169,16,225,9,289,4,361,64
위 출력에서 볼 수 있듯이, map() 메서드는 원본 배열 [11, 5, 13, 4, 15, 3, 17, 2, 19, 8]의 각 요소를 제곱한 값 [121, 25, 169, 16, 225, 9, 289, 4, 361, 64]을 담은 새로운 타입 배열을 반환합니다. 일반 Array의 map()과 동일하게 동작하지만, TypedArray는 같은 종류의 숫자 데이터만 다루므로 반환되는 배열 역시 동일한 타입의 TypedArray가 됩니다.