Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트 TypedArray set() 메서드 완벽 정리 – 사용법과 예제

자바스크립트에서 TypedArray 객체의 set() 메서드는 다른 배열의 내용을 현재 타입 배열로 복사하는 기능을 수행합니다. 복사가 시작될 위치(인덱스)를 두 번째 인수로 지정할 수 있어, 원하는 지점부터 배열 데이터를 덮어쓸 수 있습니다.

set() 메서드란?

set() 메서드는 일반 배열 또는 다른 타입 배열(TypedArray)의 요소들을 현재 타입 배열 안으로 복사합니다. 이때 시작 인덱스를 함께 전달하면 해당 위치부터 순서대로 기존 값이 새로운 값으로 대체됩니다.

문법(Syntax)

typedArray.set(array, offset)
  • array: 현재 타입 배열에 복사할 값을 담고 있는 배열 또는 타입 배열
  • offset(선택 사항): 복사를 시작할 인덱스 위치. 생략하면 0부터 복사됩니다.

예제 코드

아래 예제에서는 Int32Array 두 개를 만들고, set() 메서드를 사용해 두 번째 배열의 내용을 첫 번째 배열의 3번 인덱스부터 복사합니다.

<html>
<head>
   <title>JavaScript TypedArray set() Method</title>
</head>
<body>
   <script type="text/javascript">
      var typedArray1 = new Int32Array([11, 5, 13, 4, 15, 3, 17, 2, 19, 8]);
      document.write("원본 타입 배열: " + typedArray1);
      document.write("<br>");
      var typedArray2 = new Int32Array([110, 215, 316, 916, 616, 117, 311]);
      typedArray1.set(typedArray2, 3);
      document.write("결과: " + typedArray1);
   </script>
</body>
</html>

실행 결과

원본 타입 배열: 11,5,13,4,15,3,17,2,19,8
결과: 11,5,13,110,215,316,916,616,117,311

동작 방식 설명

위 예제에서 typedArray1.set(typedArray2, 3)이 호출되면, typedArray2의 7개 요소(110, 215, 316, 916, 616, 117, 311)가 typedArray1의 3번 인덱스부터 차례대로 복사됩니다.

  • 인덱스 0~2의 값(11, 5, 13)은 그대로 유지됩니다.
  • 인덱스 3부터 9까지의 기존 값(4, 15, 3, 17, 2, 19, 8)은 새로운 값으로 덮어써집니다.

주의 사항

  • 복사하려는 배열의 길이가 시작 오프셋부터 남은 공간보다 크면 RangeError가 발생합니다.
  • set() 메서드는 원본 배열은 변경하지 않으며, 호출된 타입 배열만 수정합니다.
  • 두 배열의 요소 타입이 달라도 자동으로 변환되어 복사되지만, 범위를 벗어나는 값은 의도와 다르게 저장될 수 있으므로 주의해야 합니다.