ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • indexOf(), lastIndexOf()
    CODING/JavaScript 2018. 10. 24. 13:58

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

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


    -사용방법

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


    예)

    1
    2
    3
    4
    5
    6
    7
    <script>
    function myFunction() {
        var str = "ABCCDE";
        var pos = str.indexOf("A");
        document.write(pos);
    }
    </script>
    cs

    위의 예제에서 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 ...

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

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


    예)

    1
    2
    3
    4
    5
    6
    7
    <script>
    function myFunction() {
        var str = "ABCCDE";
        var pos = str.indexOf("C", 1);
        document.write(pos);
    }
    </script>
    cs


    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 ...

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


    예)

    1
    2
    3
    4
    5
    6
    7
    <script>
    function myFunction() {
        var str = "ABCCDE";
        var pos = str.lastIndexOf("C");
        document.write(pos);
    }
    </script>


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

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

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


    문자열을 넣는다면?

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


    예)

    1
    2
    3
    4
    5
    6
    7
    <script>
    function myFunction() {
        var str = "ABCCDE";
        var pos = str.lastIndexOf("CD");
        document.write(pos);
    }
    </script>

    리턴값 3


    출처: http://aljjabaegi.tistory.com/126 [알짜배기 프로그래머]



    댓글

Designed by Tistory.