JavaScriptで配列内の特定要素のインデックスを取得する方法【indexOf()の使い方を解説】
JavaScriptで配列の中から特定の要素が何番目に存在するか(インデックス)を調べたい場面はよくあります。そんなときに便利なのが、indexOf()メソッドです。この記事では、indexOf()の基本的な使い方から、検索開始位置を指定する応用テクニックまで、サンプルコード付きでわかりやすく解説します。
indexOf()メソッドとは
indexOf()メソッドは、配列内から指定した要素を先頭から順に検索し、その要素が最初に見つかった位置(インデックス)を返します。インデックスは0から始まることに注意してください。
もし要素が配列内に存在しない場合は、-1が返されます。これを利用すれば、要素の存在確認にも活用できます。
基本例:特定の要素のインデックスを取得する
次の例では、企業名が格納された配列から「SolarCity」という要素のインデックスを取得しています。
サンプルコード
<html>
<body>
<p id="index"></p>
<script>
var companies = ["Spacex", "Tesla", "SolarCity", "Neuralink"];
var res = companies.indexOf("SolarCity");
document.getElementById("index").innerHTML = res;
</script>
</body>
</html>
実行結果
2
配列の並びは「Spacex(0)、Tesla(1)、SolarCity(2)、Neuralink(3)」となっているため、「SolarCity」のインデックスである 2 が出力されます。
応用例:検索開始位置を指定してインデックスを取得する
indexOf()メソッドは、第2引数に検索を開始する位置(インデックス)を指定することもできます。これにより、配列内に同じ要素が複数存在する場合でも、2つ目以降の出現位置を簡単に見つけられます。
次の例では、重複した要素を含む配列に対し、インデックス4以降から「SolarCity」を検索しています。
サンプルコード
<html>
<body>
<p id="index"></p>
<script>
var companies = ["Spacex", "Tesla", "SolarCity", "Neuralink", "Spacex",
"Tesla", "SolarCity", "Neuralink"];
var res = companies.indexOf("SolarCity", 4);
document.getElementById("index").innerHTML = res;
</script>
</body>
</html>
実行結果
6
先頭から検索すれば「SolarCity」はインデックス2にありますが、今回はインデックス4以降から検索を開始しているため、次に出現する 6 が返されます。
まとめ
- indexOf(要素):配列内を先頭から検索し、最初に一致した要素のインデックスを返す
- indexOf(要素, 開始位置):指定した位置以降から検索できるため、重複要素の扱いに便利
- 要素が見つからない場合は -1 を返す
配列操作においてindexOf()は非常によく使われる基本メソッドなので、しっかりとマスターしておきましょう。
-
Pythonで隠し配列から最頻出要素のインデックスを求めるプログラムの実装方法
問題概要ここでは、「TestArray」というクラスが与えられた状況を考えます。このクラスは、値として 0 か 1 のみを格納できる非公開(private)の配列を内部に持ち、外部から利用できる公開メンバー関数として length() と query() の2つを提供しています。length():配列の長さを返します。query(p, q, r, s):4つのインデックスを受け取り、それぞれの位置にある値を比較して、次の3種類の値のいずれかを返します。指定された4つのインデックスの値がすべて同じ(すべて 0、またはすべて 1)場合 → 4 を返す3つの値が同じで、残りの1つだけが異なる場合 →
-
Pythonで配列内の最大の要素を見つける方法を解説
この記事では、「配列の中から最大の要素を求める」という問題の解決方法について詳しく解説します。 問題の概要 問題文:与えられた配列に対して、その中で最も大きい要素を計算して求める必要があります。 ここではブルートフォース(総当たり)アプローチを使用します。これは、配列全体を先頭から順番に走査しながら各要素を比較し、その時点での最大値を更新していくというシンプルかつ確実な手法です。 実装例 以下に具体的なコードを示します。 # 最大値を求める関数 def largest(arr, n): # 最大要素の初期値として最初の要素を設定 max = arr[0] # 配列全体を