JavaScript에서 TypedArray 객체의 subarray() 메서드는 현재 배열의 일부분을 새로운 배열로 반환하는 함수입니다. 이 메서드는 시작 인덱스와 끝 인덱스를 나타내는 두 개의 숫자를 인수로 받습니다.
subarray() 메서드란?
subarray()는 기존 타입 배열(TypedArray)에서 지정한 범위의 요소들만 추출하여 새로운 TypedArray를 생성합니다. 중요한 특징은 새로운 배열이 원본 배열과 동일한 메모리 버퍼를 공유한다는 점입니다. 즉, 반환된 배열의 값을 변경하면 원본 배열에도 영향을 미칩니다.
문법(Syntax)
기본 문법은 다음과 같습니다.
typedArray.subarray(start, end)
- start: 하위 배열이 시작될 인덱스 (포함)
- end: 하위 배열이 끝나는 인덱스 (미포함, 생략 시 배열 끝까지)
예제 코드
다음 예제는 Int32Array 객체에서 subarray() 메서드를 사용하여 인덱스 3부터 7 이전까지의 요소를 추출하는 방법을 보여줍니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var typedArray = new Int32Array([111, 56, 62, 40, 75, 36, 617, 2, 139, 827]);
var result = typedArray.subarray(3, 7);
document.write("추출된 배열 내용: " + result);
</script>
</body>
</html>실행 결과
인덱스 3(값 40)부터 인덱스 6(값 617)까지의 요소가 추출되어 다음과 같은 결과가 출력됩니다.
추출된 배열 내용: 40,75,36,617
주요 특징 정리
subarray()는 원본 데이터를 복사하지 않고 같은 버퍼를 참조합니다.- 끝 인덱스(end)는 제외되며, 시작 인덱스(start)는 포함됩니다.
- 음수 인덱스를 사용하면 배열의 끝에서부터 계산됩니다.
- 원본 배열과 뷰(view)를 공유하므로 메모리 효율성이 뛰어납니다.