문자열 또는 배열에서 특정 문자를 찾아내기 위한 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를 활용할 수 있습니다.
코딩문제 풀면서 자주쓰게 되는 것 같아서 글로쓰고자 했습니다. 다른데에서도 잘 활용 가능한 것 같으니 숙지해두시면 좋을것 같습니다!!