TIL. [javascript] indexOf 없이 문자 찾기

문병곤·2020년 11월 27일
0


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

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

모범답안1

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

모범답안2

function getIndexOf(char, str) {
 
  if (!str.includes(char)) {
    return -1;
  }
  for (let x = 0; x < str.length; x++){
    if (str[x] == char){
      return x;
    }
  }

}

모범답안3

function get_find(ch,str){
  if(str.search(ch)){
    return str.search(ch);
  }else{
    return -1;
  }
}

//search는 두 번째 혹은 다른 시작 위치를 인수로 지정할 수 없다. 반대로 indexOf는 가능하다.

// indexOf는 정규 표현식을 허용하지 않는다.

참고. findIndex

findIndex() 메서드는 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환합니다. 만족하는 요소가 없으면 -1을 반환합니다.

const array1 = [5, 12, 8, 130, 44];

const isLargeNumber = (element) => element > 13;

console.log(array1.findIndex(isLargeNumber));
// expected output: 3

0개의 댓글