특정 문자 제거하기 자바스크립트 230704 til

Y b·2023년 7월 4일
0

문제

문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.

문제 원리

  1. indexof로 letter의 위치를 파악한다.
  2. for
    letter을 제거하도록 indexof와 slice를 사용할 것이다.
    indexof는 메서드는 호출한 String 객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환한다.

단, 대문자와 소문자를 구분해야 한다.

시도과정

indexOf, slice를 이용하려고 했는데
제거해야 할 문자만 해당이 되고 제거가 되지 않았다.

그래서 for문과 if문을 사용했다.


function solution(my_string, letter) {
    var answer=''
    for(let i=0; i<my_string.length; i++){
       if(my_string[i]!==letter){
           answer+=my_string[i]
       } 
    }
    
    return answer;
}

for 문으로 모든 문자열을 돌리되,
if 문으로 letter과 같지 않은 문자만 더하도록 했다.

다른 사람의 풀이

> function solution(my_string, letter) {
  const answer = my_string.split(letter).join('')
  return answer;
}

letter을 기준으로 분리하여 join 메서드로 합한다.
즉,a가 제거할 문자였다면 salon을 s와 lon으로 나누고 slon으로 리턴하는 것이다.

split() 메서드는 String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눈다.

ex) var str = 'asdfghjkl';
var strReverse = str.split('').reverse().join('');
// 'lkjhgfdsa'

join() 메서드는 어떤 형식화 배열의 모든 요소를 하나의 문자열로 연결합니다.

ex)const uint8 = new Uint8Array([10, 20, 30, 40, 50]);
console.log(uint8.join());
// Expected output: "10,20,30,40,50"


> function solution(my_string, letter) {
	return my_string.replaceAll(letter, "");
}

replaceAll 메서드를 써서 letter을 공백으로 바꾼다.

replaceAll() 메서드는 pattern의 모든 일치 항목이 replacement로 대체된 새 문자열을 반환합니다.

ex)apple이라는 string에서 a를 b로 바꾼다면,
const string= "apple"
console.log(string("a","b"))
//bapple이 출력된다.

profile
웹 개발자

0개의 댓글

관련 채용 정보