indexOf로 문자열 활용하기

윤지섭·2023년 9월 6일

indexOf 함수

문자열 또는 배열에서 특정 문자를 찾아내기 위한 indexOf함수가 존재합니다.

문법

문자열(또는 배열).indexOf("문자",탐색시작index(생략가능))

1.찾을 문자와 같은 첫index를 반환합니다
2.대소문자를 구분합니다
3.찾는 문자가 존재하지않으면 -1을 반환합니다

예제

var str="ababab";


console.log(str.indexOf("a"));
console.log(str.indexOf("ba"));
console.log(str.indexOf("A"));
console.log(str.indexOf("ab",1));

결과
>
0
1
-1
2

1.a가 검색되는 첫index는 0
2.ba가 검색되는 첫index 1
3.대소문자를 구분하기때문에 A는 존재하지않기때문에 -1
4.첫ab가 검색되는 index는 0인데 검색시작 index를 1로 잡았기 때문에 2번 index에서 처음으로 검색됨

활용하기

문자열엔 해당 문자가 포함되는지 확인하는 includes함수가 존재합니다
그런데 indexOf를 사용할때 해당 문자가 없으면 -1을 반환하는 것을 이용하여
includes 함수를 대체할 수 있습니다.

var str="ababab";

if(str.indexOf("c")==-1) console.log("없음");
if(!str.includes("c")) console.log("없음");

결과
>
없음
없음

includes함수로 찾는 문자가없으면 false를 반환하는것과 indexOf가 -1을 반환하는 것으로 같은 결과가 나오게 할수도 있고

var str="ababab";
var arr=["a","b","c"];

for(let i=0; i<arr.length; i++){
if(str.indexOf(arr[i])!==-1) console.log(str.indexOf(arr[i]));
else console.log("없음");
}

결과
>
0
1
없음

이런식으로 조건부를 통해 찾을문자가 포함되어있는지 여부와 찾는 index를 활용할 수 있습니다.

마치며

코딩문제 풀면서 자주쓰게 되는 것 같아서 글로쓰고자 했습니다. 다른데에서도 잘 활용 가능한 것 같으니 숙지해두시면 좋을것 같습니다!!

profile
개발자를 꿈꾸는 사람

0개의 댓글