Programming
[Javascript] IndexOf 배열 내에서 특정 위치 찾는 방법
개발자 염상진
2022. 5. 12. 21:59
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