오늘 코테 풀다 '부분 문자열인지 확인하기' 라는 문제를 만났다.
https://school.programmers.co.kr/learn/courses/30/lessons/181843
문제 설명
부분 문자열이란 문자열에서 연속된 일부분에 해당하는 문자열을 의미합니다.
예를 들어, 문자열 "ana", "ban", "anana", "banana", "n"는 모두 문자열 "banana"의 부분 문자열이지만, "aaa", "bnana", "wxyz"는 모두 "banana"의 부분 문자열이 아닙니다.
문자열 my_string과 target이 매개변수로 주어질 때, target이 문자열 my_string의 부분 문자열이라면 1을, 아니라면 0을 return 하는 solution 함수를 작성해 주세요.
.includes()
(ECMAScript 6이상 지원)
MDN : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes
.indexOf()
MDN : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf
function solution(my_string, target) {
let answer = my_string.includes(target);
return (answer === true)? 1 : 0
}
Array.prototype.indexOf()
->indexOf() 메서드는 배열에서 지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고 존재하지 않으면 -1을 반환합니다.
MDN : https://developer.mozilla.org/enUS/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf
String.prototype.indexOf()
->indexOf() 메서드는 호출한 String 객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환합니다. 일치하는 값이 없으면 -1을 반환합니다.
MDN : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf
indexOf
를 사용해서도 문제를 풀어 보자function solution(my_string, target) {
return my_string.indexOf(target) === -1 ? 0 : 1
}
indexOf() 와 includes()는 반환값이 다르다 그래서 참, 거짓으로 값을 반환하는 삼항연산자에 들어가는 값도 다르게 설정해 줬어야 했다.
indexOf()
는 찾을 값이 없다면 -1을 반환includes()
는 true , false 로 값을 반환