기본 문자열과 제거할 부분 문자열(구분자)이 주어졌을 때, 이 두 인수를 받아 해당 부분 문자열이 모두 제거된 새로운 문자열을 반환하는 함수 shedString()을 만드는 것이 목표입니다.
문제 예시
예를 들어 다음과 같이 호출하면,
shedString('12/23/2020', '/');슬래시(/)가 모두 제거된 아래 문자열을 반환해야 합니다.
'12232020'
구현 원리
가장 간단하고 효율적인 방법은 split()과 join() 메서드를 조합하는 것입니다.
- split(separator): 문자열을 지정한 구분자를 기준으로 잘라 배열로 만듭니다. 이 과정에서 구분자는 자연스럽게 사라집니다.
- join(""): 분리된 배열의 요소들을 빈 문자열("")로 연결하여 하나의 문자열로 다시 합칩니다.
예제 코드
const shedString = (string, separator) => {
// 문자열을 구분자를 기준으로 나누어 구분자를 제거합니다.
const separatedArray = string.split(separator);
// 나눠진 배열을 빈 문자열로 다시 하나의 문자열로 합칩니다.
const separatedString = separatedArray.join("");
return separatedString;
}
const str = shedString('12/23/2020', '/');
console.log(str);실행 결과
콘솔에 출력되는 결과는 다음과 같습니다.
12232020
추가 팁: 정규식 활용하기
여러 종류의 문자를 한 번에 제거하고 싶다면 replace() 메서드와 정규식을 활용할 수도 있습니다.
const str = '12/23/2020'; const result = str.replace(/[\/-]/g, ''); console.log(result); // 12232020
split().join() 조합은 단일 구분자 제거에 적합하고, 복잡한 패턴의 문자 제거에는 정규식이 더 유연하게 대응할 수 있습니다. 상황에 맞게 선택하여 사용하시기 바랍니다.