my_string
과 문자 letter
이 매개변수로 주어집니다. my_string
에서 letter
를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.my_string
의 길이 ≤ 100letter
은 길이가 1인 영문자입니다.my_string
과 letter
은 알파벳 대소문자로 이루어져 있습니다.입출력 예
my_string | letter | result |
---|---|---|
"abcdef" | "f" | "abcde" |
"BCBdbe" | "B" | "Cdbe" |
입출력 예 #1
입출력 예 #2
const solution = (my_string, letter)
=> [...my_string].filter(a => a !== letter).join("")
...my_string
...은 전개 연산자(spread operator)로서, 배열이나 문자열과 같은 이터러블(iterable) 객체를 확장하여 각 요소를 개별적인 값으로 분리하는 역할을 합니다. my_string이 문자열인 경우, ...my_string은 각 문자를 개별적인 값으로 분리합니다.
my_string이 "hello"인 경우, ...my_string은 "h", "e", "l", "l", "o"로 분리됩니다.
이를 배열에서 사용한다면, 배열을 확장하여 각 요소를 개별적인 값으로 분리할 수 있습니다. 예를 들어, my_array가 [1, 2, 3]인 경우, [...my_array]는 1, 2, 3으로 분리됩니다.
(a => a !== letter)
(a => a !== letter)는 화살표 함수(arrow function)로서, 인자로 받은 a가 letter와 같지 않은 경우에 true를 반환하는 함수입니다.
예를 들어, letter가 'a'이고, a가 'b'인 경우에는 a !== letter가 참이므로 (a => a !== letter) 함수는 true를 반환합니다. 하지만, letter가 'a'이고, a가 'a'인 경우에는 a !== letter가 거짓이므로 (a => a !== letter) 함수는 false를 반환합니다.
이 함수는 주로 배열의 filter 메소드와 같은 고차 함수(higher-order function)와 함께 사용되어, 특정 조건을 만족하는 요소들만 추려내는 용도로 활용됩니다. 예를 들어, 다음과 같은 코드는 문자열 배열 arr에서 'a'를 제외한 문자열들만 모아 새로운 배열을 만듭니다.
const arr = ['apple', 'banana', 'cherry', 'durian'];
const letter = 'a';
const result = arr.filter(a => a !== letter);
console.log(result); // ["banana", "cherry", "durian"]