목차
- array.indexOf() 예제 - 처음 일치 배열값 위치 찾기
- array.indexOf() 정의
- array.indexOf() 구문
- array.indexOf() 예제 - start 매개변수 사용
- array.indexOf() 예제 - 여러 항목 유무 검사
- IE9 미만 크로스브라우징 indexOf() 사용자정의함수
- array.indexOf() 예제 - 다중분류
array.indexOf() 예제 - 처음 일치 배열값 위치 찾기
<button onclick="homzzang()">클릭</button>
<p id="demo"></p>
<script>
function homzzang() {
var code = ["HTML", "CSS", "JS", "PHP"];
var a = code.indexOf("JS");
document.getElementById("demo").innerHTML = a; // 2
}
</script>
결과값: 2
array.indexOf() 정의
배열값 포함 검사 후, 해당 위치 반환.
1.
- 0부터부터 검색 시작. (※ 검색 위치 지정 시, 해당 위치부터 검색.)
- 배열 끝에서 검색 종료.
- 찾을 항목이 배열에 없을 시, -1 반환.
- 일치 배열값이 여러 개인 경우, 첫 번째 위치만 반환.
- 배열값 시작위치는 0이고, 두 번째 배열값 위치는 1.
2. cf.
lastIndexOf() 메서드 : 배열값 끝부터 역방향으로 검색.
3.
- ECMAScript 5
- IE9 이상 주요 최신브라우저 지원.
4. MDN indexOf() 예제보기
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf
array.indexOf() 구문
array.indexOf(item, start)
[매개변수]
item
필수. 찾을 배열값
start
선택. 찾을 시작위치. (기본값: 0)
- 음수 경우, 끝에서부터 센 위치부터 끝까지 검색.
[반환값]
- 일치값 존재 O 경우, 발견된 첫번째 색인번호 반환
- 일치값 존재 X 경우, -1 반환.
array.indexOf() 예제 - start 매개변수 사용
<button onclick="homzzang()">클릭</button>
<p id="demo"></p>
<script>
function homzzang() {
var code = ["HTML", "CSS", "JS", "JQ", "HTML", "CSS", "JS", "JQ"];
var a = code.indexOf("JS", 4);
document.getElementById("demo").innerHTML = a;
}
</script>
결과값: 6
array.indexOf() 예제 - 여러 항목 유무 검사
let txt = "HTML CSS JS PHP SQL";
let arr = ["JQ", "PHP", "SQL"];
arr.forEach((e) => {
if(txt.indexOf(e) != -1) {
// 존재할 때
} else {
// 존재하지 않을 때
}
});
PS. str.search() 메서드와 for 반복문 이용
let txt = "HTML CSS JS PHP SQL";
let arr = ['JQ', 'PHP', 'SQL'];
for (let i=0; i < arr.length; i++) {
if (txt.search(arr[i]) >= 0)
alert(arr[i]+" :있음")
else
alert(arr[i]+" :없음");
}
결과보기
서야 님, 평정심 님 (202226) https://sir.kr/qa/386875
IE9 미만 크로스브라우징 indexOf() 사용자정의함수
[슈와이 님 버전]
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function (obj, start) {
for (var i = (start || 0); i < this.length; i++)
if (this[i] == obj)
return i;
return -1;
}
}
var arr = [1, 2, 3, 4, 5];
var a = arr.indexOf(3); // 3 위치: 2
var b = arr.indexOf(0); // 0 위치: -1
document.write("3 위치 : " + a + "<br>0 위치 : " + b);
결과보기 ※ 슈와이 님 (170415) https://sir.kr/qa/179699
[평정심 님 버전]
function indexOf(arr, value) {
for(var i = 0; i < arr.length; i++) {
if(arr[i] === value) {
return i;
}
}
return -1;
};
var arr = [1, 2, 3, 4, 5];
var a = indexOf(arr, 3); // 3의 위치: 2
var b = indexOf(arr, 0); // 0의 위치: -1
document.write("3 위치 : " + a + "<br>0 위치 : " + b);
결과보기 ※ 평정심 님 (170415) https://sir.kr/qa/179699
array.indexOf() 예제 - 다중분류
로빈아빠 님 (110402) https://sir.kr/g4_tiptech/26035