본문 바로가기
Programming

[Javascript] IndexOf 배열 내에서 특정 위치 찾는 방법

by 개발자 염상진 2022. 5. 12.

 

 

 

 

indexOf()

 

배열 내에서 특정 요소의 위치값을 찾기 위해서는 indexOf() 메소드를 사용한다. 매개변수로는 요소 데이터를 받으며 배열 내에서 위치값을 반환한다.

물론 배열 뿐만 아니라 문자열에서도 indexOf() 메소드를 사용하면 특정 캐릭터를 찾을 수 있다.

const arr = [1,2,3,4,5]

const location = arr.indexOf(3);

console.log(location);
➜  Javascript node test.js
2

 

문자열 내 indexOf() 메소드 사용

const str = "hello world";

const str_loc = str.indexOf('lo ')


console.log(str_loc);
➜  Javascript node test.js
3

 

만약 찾는 요소가 배열내 존재하지 않으면 -1을 반환한다. 배열내에 특정 값 존재 유무를 체크하기 위해 includes() 메소드를 사용해도 되지만 indexOf()로도 확인할 수 있다. 

const arr = [1,2,3,4,5]

const location = arr.indexOf(7);

if(location < 0) console.log("값이 존재하지 않습니다.")

console.log(location);
➜  Javascript node test.js
값이 존재하지 않습니다.
-1

 

 

만약 배열내에 중복된 값이 존재한다면 N 번째 위치를 찾을 수 있다. 

indexOf('검색 데이터', N) => N번째 데이터의 위치 반환

 

const arr = [
	'korea',
	'usa',
	'japan',
	'usa',
	'china',
	'usa',
	'British',
	'usa',
]

const newArr = arr.indexOf('usa', 2)


console.log(newArr);
➜  Javascript node test.js
3

 

 

lastIndexOf()

 

배열 내에 중복된 데이터가 있을 경우 뒤에서 부터 찾아야 하는 경우에 사용한다. 매개변수는 indexOf()와 동일하게 찾고자 하는 요소 데이터를 전달받고, 배열 뒤에서 부터 인덱스를 서칭하여 최종 위치값을 반환한다.

const arr = [1,2,3,4,1,5]

const location = arr.lastIndexOf(1);


console.log(location);
➜  Javascript node test.js
4

 

toUpperCase() vs toLowerCase()

 

indexOf() 메소드는 기본적으로 대소문자를 구분한다. 따라서 문자열을 검색할 때는 배열 안의 요소를 찾기 위해서 스케일링을 따로 작업해줘야 한다.

const arr = [
	'korea',
	'usa',
	'japan',
	'china',
	'British'
]

const newArr = arr.indexOf('USA'.toLowerCase())


console.log(newArr);
➜  Javascript node test.js
1

 

 

 

댓글