JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのforEach()でループ内に連番(シーケンス番号)を取得する方法

JavaScriptでループ処理の中に連番(シーケンス番号)を振りたい場合は、forEach()メソッドを使うのが便利です。カウンター用の変数を用意し、ループが回るたびに値をインクリメントすることで、簡単に連番を生成できます。

サンプルコード

以下は、ネストされた配列の各要素に対して連番を出力する例です。

let studentDetails = [
  {
    id: 101,
    details: [{name: 'John'}, {name: 'David'}, {name: 'Bob'}]
  },
  {
    id: 102,
    details: [{name: 'Carol'}, {name: 'David'}, {name: 'Mike'}]
  }
];

var counter = 1;
studentDetails.forEach(function(k) {
  k.details.forEach(function(f) {
    console.log(counter++);
  });
});

このコードでは、外側のforEach()で学生ごとのオブジェクトを取り出し、内側のforEach()でdetails配列の各名前データにアクセスしています。変数counterは初期値が1で、ログ出力のたびに後置インクリメント(counter++)されるため、1から順に番号が増えていきます。

プログラムの実行方法

上記のプログラムを実行するには、Node.jsを使って次のコマンドを入力します。

node fileName.js

実行結果

ここではファイル名を「demo159.js」としています。実行すると、コンソールに以下のように連番が出力されます。

PS C:\Users\Amit\JavaScript-code> node demo159.js
1
2
3
4
5
6

このように、forEach()とカウンター変数を組み合わせることで、ネストされた配列構造でも要素全体を通して正しく連番を付与できます。配列のインデックスが必要な場合は、forEach()の第2引数でインデックスを受け取る方法や、map()entries()を活用する方法もありますので、用途に応じて使い分けるとよいでしょう。

  1. JavaScriptでウラム数列(コラッツ数列)を生成する方法を解説

    ウラム数列とは?数学者のウラム(Ulam)は、任意の正の整数 n(n > 0)から出発して、次のルールに従って数列を生成する方法を提案しました。なお、この数列は「コラッツ数列」や「角谷の問題」として知られるものと同じ規則に基づいています。n が 1 なら、処理を終了する。 n が偶数なら、次の数は n / 2。 n が奇数なら、次の数は 3 * n + 1。 1 に到達するまでこの処理を繰り返す。最初のいくつかの整数について、実際に数列を生成した例がこちらです。2 -> 1 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -&

  2. JavaScriptで「ほぼ増加する数列」を判定する方法|コード例でわかりやすく解説

    厳密に増加する数列とは?数列の中で、すべての後続の要素が直前の要素よりも常に大きい場合、その数列は「厳密に増加する数列(strictly increasing sequence)」であるといえます。たとえば [1, 3, 5, 7] のように、左から右へ向かって値が必ず増えていく並びのことです。今回作成するのは、数値の配列を唯一の引数として受け取るJavaScript関数です。この関数は、「配列から最大でも1つの要素を削除することで、残りの要素が厳密に増加する数列になるかどうか」を判定します。このような状態は一般に「ほぼ増加する数列(almost increasing sequence)」と呼