문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
❗제한 사항
s
는 길이 1 이상, 길이 8 이하인 문자열입니다.
s
는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
s | return |
---|---|
"a234" | false |
"1234" | true |
문자열을 배열 요소에 넣고 모든 요소가 숫자형이면 true를 출력하고 하나라도 문자가 나오면 false가 나온는 것을 생각해냈다.
function solution(s) {
var answer = true;
const data = [...s]
let result = function(value){
if(s.length === 4 || s.length === 6){
return Number.isInteger(Number(value)) //
}
}
return data.every(result) //every함수
}
배열 스프레드 기법을 사용하여 data를 저장하고 result함수를 만들어 길이 4 혹은 6이 될때만 배열요소가 숫자형인지 확인하는 함수를 만들었다. Number()
함수를 이용하여 문자열을 숫자형으로 변환하였다. (parseInt()
또한 사용가능) Number.isInteger ()
함수를 사용하여 정수형인지 아닌지 boolean값을 출력하게 했다.
마지막으로 every
함수를 사용하여 모든요소가 true일때만 true가 나오도록 설계하였다.
array 메소드에 대해 더 공부하고 자주 사용할 필요가 있다. 사용빈도가 높기 때문에 꼭 기억해둘 필요가 있다.
every <> some
서로 상반관계에 있으므로 알아두자.
자주쓰이는 Array Method
사실 문자열s의 길이가 4 혹은 6이라는 조건을 넣어야 하는지 몰라서 다 풀어놓고 몇 분동안 해멨다.... 그냥 입출력 조건 자체에서 알아서 길이를 맞춰 문자열을 넣는 줄....