2D配列をループするときに見つかった特定の値を変更するにはどうすればよいですか?

偽物

配列内の配列の値を置き換えようとしています。配列の値は1または0のみで、グリッドです。コードは1を探し、それを0に変更し、下の行の同じ列値も1に変更します。

問題は、imが行おうとしている変更でifステートメントを無効にすることだと思います。エラーメッセージが表示されます。

function gravity() {
  for (var i = 0; i < rows; i++) {
    for (var j = 0; j < cols; j++) {
      if (grid[i][j] === 1){
        grid[i][j] = 0;
        grid[i+1][j] = 1;
      }
    }
  }
}
ウェンデリン

問題は、ループが最後の行にある場合に設定しようとするi+1こと1ですが、iすでに最後のインデックスi+1が範囲外であるためです。

これを修正するには、単に追加することができます if

また、別のバグがあります。上から下に相互作用するので、任意の1を下に移動して次の行に移動し、次に次の行を通過して、下に移動したのとまったく同じ1を見つけて、もう一度下に移動します。これは、gravity()を1回呼び出すだけで、すべて1がなくなるまで繰り返されます。これを修正するには、行を下から上に相互作用する必要があります。

var grid = [
  [1,0,0,0],
  [0,0,1,0],
  [0,0,0,0],
  [0,1,0,0]
]

var cols = 4;
var rows = 4;

function gravity() {
  for (var i = rows - 1; i >= 0; i--) {
    for (var j = 0; j < cols; j++) {
      if (grid[i][j] === 1){
        grid[i][j] = 0;
        if(i+1 < rows) {
          grid[i+1][j] = 1;
        }
      }
    }
  }
}

var iterations = 0;

var intervalId = setInterval(() => {
  gravity();
  for(var row of grid) {
    console.log(row.join(','))
  }
  console.log("");
  iterations++;
  if(iterations == 4) {
    clearInterval(intervalId);
  }
}, 400)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javaでは、2D配列を反復するforループをどのように作成し、特定の値が見つかったときに行を出力してループを終了しますか?

分類Dev

2D配列のすべての値を変更するにはどうすればよいですか?

分類Dev

同一の配列が見つかったときにループの実行を停止するにはどうすればよいですか?

分類Dev

Javaの2D配列で値の位置を変更するにはどうすればよいですか?

分類Dev

2D配列のすべてのブール値を反対に変更するにはどうすればよいですか?

分類Dev

配列内の特定の要素を見つけて変更するにはどうすればよいですか?

分類Dev

特定の配列値の配列キーを変更するにはどうすればよいですか

分類Dev

numpyの3D配列で最小値と最大値を見つけて、結果をグループ化するにはどうすればよいですか?

分類Dev

毎回すべての行から1つの値を取得することにより、ループのある2D配列内の値のすべての組み合わせを取得するにはどうすればよいですか?

分類Dev

配列の配列をキーと値を含むグループ化された配列に変換するにはどうすればよいですか?

分類Dev

Pythonで配列の値がなくなったときにループを停止するにはどうすればよいですか?

分類Dev

2D配列に表示される文字を変更するにはどうすればよいですか?

分類Dev

2D配列の特定の文字列を置き換えるにはどうすればよいですか?

分類Dev

2D配列の中央を見つけるにはどうすればよいですか?

分類Dev

2つの多次元配列を比較し、値が見つかった場合に1つに変数を追加するにはどうすればよいですか?

分類Dev

1つの配列を並べ替えるときに2つの配列の順序を変更するにはどうすればよいですか?

分類Dev

forループを使用して既存の2D配列の最後に2D配列を数回追加するにはどうすればよいですか?

分類Dev

辞書の各キーと値のペアを2D配列のフラット行に変換するにはどうすればよいですか?

分類Dev

特定の列の値に従って関数を変更するにはどうすればよいですか

分類Dev

forループなしで2D配列を検索するにはどうすればよいですか?

分類Dev

Numpyで2D配列要素を変更するにはどうすればよいですか?

分類Dev

要求されたすべての値が2D配列に存在するかどうかを確認するにはどうすればよいですか?

分類Dev

フィルタを使用するときに2つの配列から2つの値を返すにはどうすればよいですか

分類Dev

2D配列の特定の位置に文字を表示するにはどうすればよいですか?

分類Dev

djangoのモデル、adminで1つを編集するときに2つの値を変更するにはどうすればよいですか?

分類Dev

2Dインデックスと1D値ベクトルに基づいてNumpy3D配列のz軸に沿った値を置き換えるにはどうすればよいですか?

分類Dev

int 2D配列で最も0の値を持つ行を見つけるにはどうすればよいですか?

分類Dev

Pythonで、2D配列の「列」の最大値を取得するにはどうすればよいですか?

分類Dev

1つの値に従って配列をフィルタリングおよび変更するにはどうすればよいですか?

Related 関連記事

  1. 1

    Javaでは、2D配列を反復するforループをどのように作成し、特定の値が見つかったときに行を出力してループを終了しますか?

  2. 2

    2D配列のすべての値を変更するにはどうすればよいですか?

  3. 3

    同一の配列が見つかったときにループの実行を停止するにはどうすればよいですか?

  4. 4

    Javaの2D配列で値の位置を変更するにはどうすればよいですか?

  5. 5

    2D配列のすべてのブール値を反対に変更するにはどうすればよいですか?

  6. 6

    配列内の特定の要素を見つけて変更するにはどうすればよいですか?

  7. 7

    特定の配列値の配列キーを変更するにはどうすればよいですか

  8. 8

    numpyの3D配列で最小値と最大値を見つけて、結果をグループ化するにはどうすればよいですか?

  9. 9

    毎回すべての行から1つの値を取得することにより、ループのある2D配列内の値のすべての組み合わせを取得するにはどうすればよいですか?

  10. 10

    配列の配列をキーと値を含むグループ化された配列に変換するにはどうすればよいですか?

  11. 11

    Pythonで配列の値がなくなったときにループを停止するにはどうすればよいですか?

  12. 12

    2D配列に表示される文字を変更するにはどうすればよいですか?

  13. 13

    2D配列の特定の文字列を置き換えるにはどうすればよいですか?

  14. 14

    2D配列の中央を見つけるにはどうすればよいですか?

  15. 15

    2つの多次元配列を比較し、値が見つかった場合に1つに変数を追加するにはどうすればよいですか?

  16. 16

    1つの配列を並べ替えるときに2つの配列の順序を変更するにはどうすればよいですか?

  17. 17

    forループを使用して既存の2D配列の最後に2D配列を数回追加するにはどうすればよいですか?

  18. 18

    辞書の各キーと値のペアを2D配列のフラット行に変換するにはどうすればよいですか?

  19. 19

    特定の列の値に従って関数を変更するにはどうすればよいですか

  20. 20

    forループなしで2D配列を検索するにはどうすればよいですか?

  21. 21

    Numpyで2D配列要素を変更するにはどうすればよいですか?

  22. 22

    要求されたすべての値が2D配列に存在するかどうかを確認するにはどうすればよいですか?

  23. 23

    フィルタを使用するときに2つの配列から2つの値を返すにはどうすればよいですか

  24. 24

    2D配列の特定の位置に文字を表示するにはどうすればよいですか?

  25. 25

    djangoのモデル、adminで1つを編集するときに2つの値を変更するにはどうすればよいですか?

  26. 26

    2Dインデックスと1D値ベクトルに基づいてNumpy3D配列のz軸に沿った値を置き換えるにはどうすればよいですか?

  27. 27

    int 2D配列で最も0の値を持つ行を見つけるにはどうすればよいですか?

  28. 28

    Pythonで、2D配列の「列」の最大値を取得するにはどうすればよいですか?

  29. 29

    1つの値に従って配列をフィルタリングおよび変更するにはどうすればよいですか?

ホットタグ

アーカイブ