Programing/JavaScript

자바스크립트 javaScript indexOf(), lastIndexOf() methods

리커니 2015. 7. 23.
반응형

 

자바스크립트 javaScript indexOf(), lastIndexOf() methods

 

 

 

indexOf() 메소드는 파라메터와 같은 문자 or 문자열을 처음부터 찾아 몇번째 위치하는지 리턴하는 메소드다.

 

-사용방법

문자열.indexOf("찾을문자열", 검색을 시작할 인덱스값[생략가능])

 

예)

 
<script>
function myFunction() {
    var str = "ABCCDE";
    var pos = str.indexOf("A");
    document.write(pos);
}
</script>

 

위의 예제에서 indexOf의 리턴값은 0이다.

주의! 자바스크립트는 0부터 카운트 한다. 그래서 첫자인 A를 찾아 그 인덱스 값인 0을 리턴 하는것이다.

그렇다면 str.indexOf("B");의 리턴값은? 1이다. 이런식으로 0부터 1, 2, 3...으로 올라가는 것이다.

A    B    C    C    D    E ...

0    1     2     3     4    5 ...

----------------------->

그럼 검색을 시작할 인덱스값을 옵션으로 넣어보자.

 

예)

 
<script>
function myFunction() {
    var str = "ABCCDE";
    var pos = str.indexOf("C", 1);
    document.write(pos);
}
</script>


indexOf는 맨 앞에서부터 검색을 하지만 옵션값을 주면

그 위치부터 검색을 하기때문에 좀더 효율적으로 검색할 수도 있다.

검색 시작 옵션값으로 1을 주어 1의 위치인 B부터 검색을 시작한다.

그래서 리턴되는 값은? 2 다.

 

여기서 좀 헤깔려하는 사람이 있는데 검색 시작위치인 1을 주었다고 해서

그 위치인 B의 인덱스가 0 이 되는 것이 아니다! B가0이되어 1이 출력되는 것이 아니라는 말이다.

옵션 시작값을 0을 주던 1을 주던 위의 리턴값은 2

 

그렇다면 시작값을 4를 주어 문자열 내에 해당 값이 없다면?

해당값이 없을때 리턴값은 무조건 -1이다. (lastIndexOf도 같다.)

 

그럼 lastIndexOf() 의 사용법도 알아보자.

 

-사용방법

문자열.lastIndexOf("찾을문자열", 검색을 시작할 인덱스값[생략가능])

 

사용법은 indexOf()와 같다. 하지만 lastIndexOf()는 뒤어서 부터 검색을 시작한다.

A    B    C    C    D    E ...

0    1     2     3     4    5 ...

<-----------------------

 

예)

 
<script>
function myFunction() {
    var str = "ABCCDE";
    var pos = str.lastIndexOf("C");
    document.write(pos);
}
</script>

 

위의 리턴 값은 몇일까? 3 이다.

lastIndexOf()는 뒤에서부터 검색을 시작하기 때문에 세번째 C가 아닌 네번째 C값의 인덱스를 리턴하는 것이다.

같은 코딩에서 lastIndexOf()를 indexOf() 로 바꾼다면 결과 값은 2가 된다.

 

문자열을 넣는다면?

문자열의 시작값의 인덱스를 리턴한다.

 

예)

 
<script>
function myFunction() {
    var str = "ABCCDE";
    var pos = str.lastIndexOf("CD");
    document.write(pos);
}
</script>

 

리턴값 3

 

반응형

댓글

💲 추천 글