코드문제를 풀다가 includes에 대해 다시 알게 되었다.
내가 알던 includes는 string일때 array일때 사용이 가능하며 만약 찾고자 하는 문자가 포함되어 있을 경우 true를 return해준다.
다음은 MDN에서의 정의이다. includes에 대해 알아보기 위해서 검색했다.
내가 알던 것과 비슷하다.
MDN의 예시를 가지고 왔다
const sentence = 'The quick brown fox jumps over the lazy dog.';
const word = 'fox';
console.log(`The word "${word}" ${sentence.includes(word) ? 'is' : 'is not'} in the sentence`);
// expected output: "The word "fox" is in the sentence"
복잡 하지만 결과는 fox를 가지고 있어서 ture가 되고 결과는 output 과 같이 작성된다.
일반적으로 그냥 포함되어 있으면 된다 라고 생각하게 된다.
하지만 문제를 풀다가 include는 찾고자 하는 단어가 한글자라도 포함되어 있으면 true를 리턴했다.
말이 어려우니 예시를 가져온다.
const sentence = 'f';
const search = 'fox';
console.log(search.includes(sentence));
이런경우 true가 나온다. 찾고자 하는 단어에 한글자라도 포함되어 있으면 true라는 것이다. 이것이 어떻게 사용될 것인가 ?
만약 긴 문장에서 찾고자 하는 단어가 하나라도 있을 경우를 생각할수 있다.
조금 변형 해야하는 문제이지만 위의 조건만 잘 알면 쉽게 풀수 있다.
일반적인 문제에서는 모음 가져오기 문제가 적합하다.
긴 문장에서 aeiou 모음 하나하나 분석 하는 것보다 긴문장에서 한글자만 가져와서 aeiou와 매칭 시키면 된다.
const search = (str) => {
let vowels= 'aeiou'
for (const char of str.toLowerCase()) {
console.log(vowels.includes(char))
}
}
search('abracada')
위의 코드는 예시로 문장이 주어져도 소문자로 변경시키고 한글자 한글자씩 분해하여 vowels =aeiou 중에 하나라도 맞을경우 true가 나온다.
처음에 나는 aeiou를 하나씩 분해하고, 문장을 하나씩 분해해서 맞나 안맞나 찾아봐야겠다 라고 생각하였지만 includes함수의 새로운 점을 알게 되면서 이렇게 적용시킬수 있었다.