indexOf
주어진 문자열 s의 앞에서부터 (index: 0) 지정한 문자가 처음으로 발견되는 위치의 index를 반환한다. 발견되지 않으면 -1을 반환한다.
s.idexOf('a') : 문자열 s의 앞에서부터 a의 위치를 탐색 (defualt : index == 0)
s.idexOf('a', 1) : 문자열 s의 index == 1 부터 a의 위치를 탐색
중복제거(indexOf) 활용 예
let answer = "";
let s = "asdfasdf";
for (let i = 0; i < s.length; i++) {
//console.log(s[i], i, s.indexOf(s[i]));
if (s.indexOf(s[i]) === i) answer += s[i];
}
asdf
console.log(s[i], i, s.indexOf(s[i])); 출력결과
a 0 0
s 1 1
d 2 2
f 3 3
a 4 0
s 5 1
d 6 2
f 7 3
즉, s.indexOf(s[i]) === i 인 경우가 s[i]가 첫번째로 발견된 경우이므로 answer에 집어넣는다. answer += s[i]
문자열에서 중복 개수 세는 법
let s = "asdfasdf";
let cnt = 0;
let pos = s.indexOf("i");
while (pos !== -1) {
cnt++;
pos = s.indexOf("i", pos + 1);
}
문자열 s에 들어 있는 i 문자의 개수를 세는 코드이다.
먼저, 문자열 s에 들어있는 i의 위치를 pos 변수에 넣는다.
pos의 값이 -1이 아니면 while문을 실행해 cnt를 1 증가시킨다.
이번엔 문자열 s에서 pos에 넣은 값보다 1 큰 위치에서부터 i를 찾고 이를 다시 pos에 넣는다.
pos의 값이 -1이 아닐 때까지 while문을 반복한다.
cnt에는 문자열 s에 들어 있는 i 문자의 개수가 담긴다.
출처 : https://velog.io/@gwsyl22/javascript-%EC%A4%91%EB%B3%B5%EC%A0%9C%EA%B1%B0-indexOf
'javaScript&jQurey' 카테고리의 다른 글
map, reduce 활용하기 (0) | 2022.09.15 |
---|---|
[JavaScript] 배열에서 중복제거 및 값 삭제 (0) | 2022.08.24 |
[JavaScript] 자바스크립트 forEach 메서드 이해하기 (1) | 2022.08.22 |
[JS] 쿠키(Cookie) 다루기 (0) | 2022.08.22 |
[javaScript]자바스크립트 타이머 - setTimeout, setInterval, clearInterval 함수 (0) | 2022.08.07 |