JavaScript / Object / Array.indexOf(), Array.lastIndexOf() - 일치하는 요소의 위치(인덱스)를 반환하는 메서드
.indexOf()
.indexOf()는 주어진 값과 일치하는 요소의 인덱스를 반환하는 메서드입니다.
문법
array.indexOf( value, start )
- value : 찾으려는 값을 넣습니다.
- start : 검색을 시작할 인덱스 값입니다. 생략 가능하고, 생략했을 경우 값은 0입니다.
- 일치하는 원소가 있다면 인덱스를 반환합니다. 여러 개 있으면 처음 원소의 인덱스를 반환합니다. 없다면 -1을 반환합니다.
예제
배열 원소의 인덱스는 0부터 시작합니다. 즉, 첫번째 원소의 인덱스는 0, 두번째 원소의 인덱스는 1입니다.
[ 'a', 'b', 'c', 'd' ].indexOf( 'a' )
문자열 a의 인덱스인 0을 반환합니다.
[ 'a', 'b', 'c', 'd' ].indexOf( 'b' )
문자열 b의 인덱스인 1을 반환합니다.
[ 'a', 'b', 'c', 'c' ].indexOf( 'c' )
문자열 c가 여러 개 있으면 첫번째 원소의 인덱스 2를 반환합니다.
[ 'a', 'b', 'c', 'd' ].indexOf( 'f' )
문자열 f가 없으므로 -1을 반환합니다.
[ 'a', 'b', 'a', 'c' ].indexOf( 'a', 1 )
문자열 a를 1 인덱스부터 검색합니다. 따라서 2를 반환합니다.
[ '1', 1, 'a', 'b' ].indexOf( 1 )
데이터 타입도 같은 것을 찾습니다. 1을 반환합니다.
.lastindexOf()
.lastIndexOf()는 .indexOf()와 달리 뒤에서부터 검색합니다.
문법
array.lastIndexOf( value, start )
- value : 찾으려는 값을 넣습니다.
- start : 검색을 시작할 인덱스 값입니다. 생략 가능하고, 생략했을 경우 제일 뒤에서부터 검색합니다.
- 일치하는 원소가 있다면 인덱스를 반환합니다. 일치하는 원소가 여러 개 있다면 가장 뒤에 있는 원소의 인덱스를 반환합니다. 없다면 -1을 반환합니다.
예제
document.write( [ 'a', 'a', 'b', 'c', 'd' ].indexOf( 'a' ) );
.indexOf()라면, 앞에서부터 검색했을 때 처음 나오는 문자열 a의 인덱스인 0을 반환합니다.
document.write( [ 'a', 'a', 'b', 'c', 'd' ].lastIndexOf( 'a' ) );
.lastIndexOf()라면, 뒤에서부터 검색했을 때 처음 나오는 문자열 a의 인덱스인 1을 반환합니다.