프로그래머스 접미사인지 확인하기 자바스크립트 알고리즘 풀이
문제
나의 풀이
아이디어
만약 is_suffix기 my_string에 포함되어있다면, 부분 문자열이 있는 가장 마지막 인덱스 + is_suffix의 길이가 my_string의 길이와 같을 경우 접미사가 된다.
코드
function solution(my_string, is_suffix) {
return my_string.lastIndexOf(is_suffix) !== -1 ?
+(my_string.lastIndexOf(is_suffix) + is_suffix.length === my_string.length)
: 0;
}
다른 사람 풀이
function solution(my_string, is_suffix) {
return my_string.slice(my_string.length - is_suffix.length) === is_suffix ? 1 : 0
}
my_string을 is_suffix만큼 잘라서 비교한 풀이.
훨씬 간결하고 가독성이 좋은 코드같다.
const solution = (str, suff) => str.endsWith(suff) ? 1 : 0
접두사인지 확인하기 문제에서 startsWith
메서드를 처음 봤었는데, endsWith
함수도 있었다…
알게 된 것
String.prototype.endsWith()
어떤 문자열이 특정 문자열로 끝나는지 여부를 Boolean 값으로 반환하는 메서드.
str.endsWith(searchString[, length])
총 2개의 인자를 받는다.
- searchString : 문자열 내에서 찾아야 할 타겟 문자열
- length : 생략 가능. (생략시 기본값은 문자열 전체 길이) 탐색을 진행할 문자열의 길이값. 즉 탐색을 진행할 문자열 내의 범위가 된다. length는 문자열 전체 길이 내여야 한다.