derasado
@derasado (Sado)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Javascript勉強中

解決したいこと

Javascriptをドットインストールで勉強中で関数や配列などを学習中です。
その際に、どんな場面で使用されるのかがイマイチイメージできずに学習しているので
深く理解ができておりません。
なにか学習する上でコツなどはございますでしょうか?

発生している問題・エラー

Javascriptの関数や配列などが深く理解できない。下記のようにpush()を使用するのではなく、[]内にそのまま記入すればよいのでは?と思ってしまってます。 

例)

{
 const scores = [80, 90, 40,60,80,100];
scores.push(60,55);
scores.shift();

for (let i = 0; i < scores.length; i++) {
  console.log(`Score ${i}: ${scores[i]}`)
  }
}

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

Javascript

例)

自分で試したこと

実際に自分で考えてみたが、どのように使用されるか不明。

0

1Answer

ゲーム作るといいですよ。
以下は、pushを使った例です。

NumberGuessingGame.html
<html>
<title>数当てゲーム</title>
<script>

do { // メインループ
    var secret = Math.ceil(Math.random() * 9); // 秘密の数
    var log = []; // 推測の記録
    var num = 0; // プレイヤーの推測数値
    var message = "[1~9]数は?"; // プロンプト

    while (secret != num) { // ゲームループ
        var input = window.prompt(message) // 入力を得る
        num = Number(input); // 入力を数値化
        if (input == null) { // キャンセルなら
            break; // ゲームループを終了
        } else if (input == "" || isNaN(num)) { // 未入力や数字以外なら
            continue; // やり直し
        }
        log.push(num); // 入力を記録
        message = `${log.slice(-1)[0]}より${(secret > num) ? "大きい" : "小さい"}数です。`; // 次のプロンプト
    }
} while (window.confirm(`終了しました。 正解: ${secret}、 推測${log.length}回 (${log})\n続けますか?`)); // 記録の表示と継続の確認

</script>
</html>
  • Google Chromeでしか動作を確認していません。
  • 手元で遊ぶためには、ブラウザの設定で、ローカルファイルのスクリプト実行を有効にする必要があります。
0Like

Comments

  1. @derasado

    Questioner

    ありがとうございます。

    このpushの使い方はつまり、相手に入力をしてもらうための数字を末尾に追加しているということでしょうか?
  2. ゲーム終了時に報告するために、相手に入力してもら'った'数字を末尾に追加しています。
  3. @derasado

    Questioner

    なるほどです!
    推測●回の横の()の中の相手に押してもらった推測数値を表示する部分という事ですね!

    相手に基本的に入力してもらうような予測てきない数値を表示する場合などにpushは役に立つといったイメージでしょうか?
  4. そうですね。

    教材では、扱う事象を単純化するために、データをコード中に記述することもありますが、実際のデータは、手入力、ファイル、通信など、動的であることがほとんどです。
    プログラムでは、もたらされる可能性のあるデータの範囲内を汎用に処理し、範囲外でもエラーとして適切に扱いたいわけです。
    プログラム言語やフレームワークは、そういった課題を容易に解決できるように進化してきたのだろうと思います。
  5. @derasado

    Questioner

    勉強になりました!ありがとうございます。
  6. 僅かでもお役に立てたのでしたら何よりです。

Your answer might help someone💌