javascript의 배열 리스트 중에 내가 찾는 단어가 포함되어 있는지 없는지를 확인할 필요가 있습니다.
몇가지 방법이 있지만 indexOf
나 lastIndexOf
를 통해서 확인 할 수 있습니다.
구문
array.indexOf(searchElement[, fromIndex])
array.lastIndexOf(searchElement[, fromIndex])
해결방법
var fruit = new Array("apple","orrange","pear","grape");
alert(fruit.indexOf("pear")); // 2 출력
alert(fruit.lastIndexOf("pear")); // 1 출력
var fruit = new Array("apple","orrange","pear","grape" ,"orrange");
alert(fruit.indexOf("orrange", 0)); // 1 출력
alert(fruit.indexOf("orrange", 2)); // 4 출력
설명
indexOf()
fruit
변수에 배열형태로 입력되어 있는 4개의 과일명에서 indexOf()
로 원하는 단어를 앞에서 부터 비교하여 할당된 단어가 위치해 있는 인덱스 값을 반환합니다. 이때 1
이 아닌 0
부터 카운트를 한다는 것에 주의해야 합니다.
해당하는 단어가 없을 겅우는 -1
을 반환합니다.
lastIndexOf()
fruit
변수에 배열형태로 입력되어 있는 4개의 과일명에서 lastIndexOf()
로 원하는 단어를 뒤에서 부터 비교하여 할당된 단어가 위치해 있는 인덱스 값을 반환합니다. 이때 1
이 아닌 0
부터 카운트를 한다는 것에 주의해야 합니다.
해당하는 단어가 없을 겅우는 -1
을 반환합니다.
에제) fruit.indexOf("orrange", 2))
fruit.indexOf("orrange", 2))
처럼 찾고자 하는 단어 뒤에 숫자(2)는 찾는 시작점이라고 할 수 있습니다.
var fruit = new Array("apple","orrange","pear","grape" ,"orrange");
에서 보면 시작점은 인덱스 2에 해당하는 pear
에서 부터 찾기를 시작합니다.
pear
부터 뒤로 찾아가다가 마지막에 있는 orrange
를 찾은 후 인덱스값을 반환해 줍니다. 여기서 헷갈리지 말아야 할 것이 pear
부터 2번째
에 있다고 2
를 반환하는 것이 아니라 이 전체 배열에서 해당하는 orrange
가 몇 번째인가를 리턴해 준다는 것입니다. 여기서는 인덱스 4
가 됩니다.