indexOf()

Robin·2022년 3월 18일
0

JavaScript 알고리즘

목록 보기
1/9

str.indexOf()

예시로 보는 기본 문법

"ksekkset".indexOf("k") // 0

👉 첫번째로 존재하는 "k"의 인덱스를 반환한다: 0

"ksekkset".indexOf("k", 1) // 3

👉 두번째 인자로 받은 숫자를 인덱스로 하여, 즉 [1]부터 서칭하여 존재하는 "k"의 인덱스를 반환한다: 3

"ksekkset".indexOf("A") // -1

👉 찾는 문자가 존재하지 않을 시에는 -1을 반환한다: -1


알고리즘 문제에 적용: 중복문자제거

function solution(str) {
        let answer = "";
        for (let i = 0; i < str.length; i++) {
          //   console.log(str[i], i, str.indexOf(str[i]));
          if (str.indexOf(str[i]) === i) answer += str[i];
        }
        return answer;
      }

      console.log(solution("ksekkset")); // "kset"
  • 반복문 for문을 돈다: 이때 for(let alphabet of str) of가 아닌 인덱스 i를 활용할 수 있도록 한다.
  • 주석 처리 된 console.log(str[i], i, str.indexOf(str[i]))를 확인하면 if문의 조건을 좀 더 쉽게 이해할 수 있다.

알고리즘 문제에 적용: 문자 찾기(카운팅)

function solution(s, t) {
		let answer = 0;
        let position = s.indexOf(t);
        while (position !== -1) {
          answer++;
          position = s.indexOf(t, position + 1);
        }
        return answer;
      }

      let str = "COMPUTERPROGRAMMING";
      console.log(solution(str, "R")); // 3(str에 "R"은 총 3개 존재)
  • 찾는 문자가 존재하지 않을 시에는 -1을 반환하는 indexOf()의 특성을 활용한 문제풀이
  • 반복문 while문을 돌게 될 때, position을 다시금 설정해 주는걸 잊지말자.
profile
Always testing, sometimes dog walking

0개의 댓글

관련 채용 정보