[プログラマー/Javascript]17文字列ベース
3322 ワード
問題の説明
文字列
せいげんじょうけん I/O例
sreturn"a234"false"1234"true
に答える
最初に提出された回答
再送信された回答
説明:
3つの演算子に3つの演算子を加える方法で解きます.まず、
文字列
s
の長さが4または6で、数値のみで構成されている関数を完了します.solution
例えば、sが"a234"
であればFalse
を返し、"1234"
であればTrue
を返す.せいげんじょうけん
s
は、長さが1より大きく、長さが8より小さい文字列である.sreturn"a234"false"1234"true
に答える
最初に提出された回答
function solution(s) {
return s.length === 4 || s.length === 6 ? (isNaN(s) ? false : true ) : false
}
最初は非数字(Not-a-Number
)を判別するisNaN()
を用いた.同様に、Number.isNaN()
というものもあり、非数値true
を返さずに計算できない場合や検索できない場合にのみ返されるparseInt('apple')
の関数であるため、今回は不適切である.しかし、コミット後、1つのケースで未知の失敗が発生したことがわかりました.再送信された回答
function solution(s) {
return s.length === 4 || s.length === 6 ? (s == parseInt(s) ? true : false ) : false
}
どう考えても問題がどこにあるのか分からないので、他の人は解決方法を確認しました.親切に書いてください.したがって、整数以外の数では、NaN
を返すfalse
も失敗する.説明:
3つの演算子に3つの演算子を加える方法で解きます.まず、
isNaN()
の長さが4または6であるかどうかを確認し、正しい場合、比較s
とs
の値が同じかどうかを確認します.数値で構成されていない文字列の場合は、結果が異なるparseInt(s)
とtrue
が返されます.(この場合false
は文字列であり、s
ではなく===
を使用する必要があります.Reference
この問題について([プログラマー/Javascript]17文字列ベース), 我々は、より多くの情報をここで見つけました https://velog.io/@ricky0813/프로그래머스Javascript-17.-문자열-다루기-기본テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol