JavaScriptにおける数字の桁のチェック

次のような数字が与えられているとします:

javascriptlet num = 12345;

数字の最初の桁にアクセスしようとすると、 予期しない動作が発生します:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // これが実行される
}

すでにご存知のように、問題は文字列の文字には アクセスできますが、数字の桁にはアクセスできない ことです:

javascriptlet num = 12345;
console.log(num[0]); // undefinedを出力

この問題を解決するために、数字を文字列に 変換しましょう:

javascriptlet num = 12345;
let str = String(num);

if (str[0] == 1) {
  console.log('+++'); // これが実行される
} else {
  console.log('---');
}

新しい変数を導入する必要はありません。 関数Stringの結果に直接[0]を 適用することができます:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('正しい'); // '正しい'を出力
} else {
  console.log('正しくない');
}

次に、最初の桁が1または2に等しいか どうかをチェックしたいとします。 対応するコードを書きましょう:

javascriptlet num = 12345;

if (String(num)[0] == 1 || String(num)[0] == 2) {
  console.log('+++');
} else {
  console.log('---');
}

この場合、String(num)[0]という構文が 2回繰り返されることになります。 これは、第一に長くなり、第二に、数字を文字列に 2回変換するため最適ではなく、プログラムリソースが 無駄に消費されます。

この問題を修正しましょう:

javascriptlet num = 12345;
let first = String(num)[0];

if (first == 1 || first == 2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

整数が与えられます。 この数字の最後の桁がゼロに等しいかどうかを チェックする条件を書いてください。

Задание 2

変数numに数字が格納されているとします。 数字が偶数か奇数かを判定してください。 最後の桁が0、2、4、 6、または8であれば偶数であり、 そうでなければ奇数です。