JavaScript에서 TypedArray 객체의 indexOf() 함수는 인자로 전달받은 값이 타입 배열(typed array) 안에 존재하는지 확인하는 데 사용됩니다. 요소가 발견되면 해당 요소가 위치한 인덱스를 반환하며, 같은 요소가 여러 번 나타나는 경우에는 그중 첫 번째 인덱스를 반환합니다. 만약 배열에 지정된 요소가 존재하지 않으면 -1을 반환합니다.
또한 indexOf() 함수는 선택적으로 두 번째 매개변수인 fromIndex를 받을 수 있습니다. 이 값을 지정하면 해당 인덱스부터 검색을 시작하므로, 배열의 특정 구간만 탐색하고 싶을 때 유용합니다.
문법(Syntax)
typedArray.indexOf(searchElement[, fromIndex])
- searchElement: 배열에서 찾고자 하는 값입니다.
- fromIndex (선택 사항): 검색을 시작할 인덱스입니다. 음수를 지정하면 배열 끝에서부터 계산된 위치에서 검색이 시작됩니다.
예제 1: 요소가 존재하는 경우
다음 예제에서는 Int32Array에서 값 66을 검색합니다. 배열에 66이 세 번 등장하지만, indexOf()는 가장 먼저 나타난 인덱스인 5를 반환합니다.
<html>
<head>
<title>JavaScript TypedArray indexOf Method</title>
</head>
<body>
<script type="text/javascript">
var int32View = new Int32Array([21, 19, 65, 21, 14, 66, 87, 55, 66, 97, 66]);
document.write("타입 배열의 내용: " + int32View);
document.write("<br>");
var contains = int32View.indexOf(66);
document.write("지정한 요소가 위치한 인덱스: " + contains);
</script>
</body>
</html>실행 결과
타입 배열의 내용: 21,19,65,21,14,66,87,55,66,97,66 지정한 요소가 위치한 인덱스: 5
예제 2: 요소가 존재하지 않는 경우
이번에는 배열에 존재하지 않는 값 634를 검색해 보겠습니다. 이 경우 indexOf() 함수는 -1을 반환합니다.
<html>
<head>
<title>JavaScript TypedArray indexOf Method</title>
</head>
<body>
<script type="text/javascript">
var int32View = new Int32Array([21, 19, 65, 21, 14, 66, 87, 55, 66, 97, 66]);
document.write("타입 배열의 내용: " + int32View);
document.write("<br>");
var contains = int32View.indexOf(634);
document.write("지정한 요소가 위치한 인덱스: " + contains);
</script>
</body>
</html>실행 결과
타입 배열의 내용: 21,19,65,21,14,66,87,55,66,97,66 지정한 요소가 위치한 인덱스: -1
정리
indexOf() 함수는 타입 배열에서 특정 요소의 위치를 빠르게 찾을 때 유용합니다. 반환값이 -1인지 여부를 확인하면 요소의 존재 여부도 간단하게 판별할 수 있으며, 일반 Array의 indexOf()와 동일한 방식으로 동작한다는 점을 기억해 두면 좋습니다.