[Javascript] for 문 - 2가지 방법 차이

Hansol Jeong·2022년 2월 25일
0

Pre-course

목록 보기
12/14

Assignment

getFind 함수를 작성하세요.

문자와 문자열이 주어졌을때, getFind 함수는 주어진 문자열에서 주어진 문자가 나타나는 첫번째 위치를 반환합니다.

Notes: 문자열의 첫번째 문자는 인덱스 값 0 을 가집니다. 만약 문자열에 해당 문자가 여러번 나타나면, 첫번째로 나타나는 위치를 반환해야 합니다. 만약 문자가 문자열에 존재하지 않는다면, -1 을 반환해야 합니다.

중요!! indexOf 함수를 사용하지 마세요.

const output = getFind('a', 'I am a hacker')
console.log(output) // --> 2

Solution 1

function getFind(filter, sentence) {
    for (let i = 0; i < sentence.length; i++) {
      if (sentence[i] == filter) {
          return i;
      }
    }
    return -1;
}

const output = getFind('a', 'I am a hacker')
console.log(output) // --> 2
console.log(typeof(output));
  • 기본 for 문 형식입니다. 문자열의 각 문자에 대해 for 문을 돌려서 filter 인자와 일치하면 해당 인덱스를 return 합니다.
  • 여기서 정답(output)은 Number 타입입니다.

Solution 2

function getFind(filter, sentence) {
    for (let i in sentence) {
        if (sentence[i] == filter) {
            return Number(i);
          	// console.log(typeof(i)); --> string
        }
    }
    return -1;
}

const output = getFind('a', 'I am a hacker')
console.log(output) // --> 2
  • for 문의 조건식을 간단하게 표현한 방식입니다.
  • 주의할 점은 이렇게 했을 때, 구하는 인덱스 i 가 문자열로 return 된다는 점 입니다.
  • Number() 를 사용해서 Number 타입으로 return 되도록 구현했습니다.
profile
기록해둡시다

0개의 댓글