JavaScript Array findIndex()

定義と使用方法

findIndex() 関数を提供する最初のテストを通過した配列の要素のインデックスを返します。

findIndex() 関数を配列の各要素に対して一度実行します:

  • findIndex()は、関数のtrue値を返す配列の要素のインデックスを返します(残りの値をチェックしません)
  • そうでない場合は-1を返します

注記:findIndex() 値がない配列の要素に対して関数を実行しません。

注記:findIndex() 元の配列を変更しません。

例 1

配列の中で18以上の最初の要素のインデックスを取得します:

var ages = [3, 10, 18, 20];
function checkAdult(age) {
  return age >= 18;
}
function myFunction() {
  document.getElementById("demo").innerHTML = ages.findIndex(checkAdult);
}

実際に試してみてください

例 2

特定の数字以上の最初の値を持つ配列の要素のインデックスを取得する:

<p>最低年齢: <input type="number" id="ageToCheck" value="18"></p>
<button onclick="myFunction()">試してみる</button>
<p>以下の年齢以上の任何年齢: <span id="demo"></span></p>
<script>
var ages = [4, 12, 16, 20];
function checkAdult(age) {
  return age >= document.getElementById("ageToCheck").value;
}
function myFunction() {
  document.getElementById("demo").innerHTML = ages.findIndex(checkAdult);
}
</script>

実際に試してみてください

文法

array.findIndex(function(currentValue, index, arr), thisValue)

パラメータ値

パラメータ 説明
function(currentValue, index, arr) 必須。配列の各要素に実行される関数。

関数パラメータ:

パラメータ 説明
currentValue 必須。現在の要素の値。
index オプション。現在の要素の配列インデックス。
arr オプション。現在の要素が属する配列オブジェクト。
thisValue

オプション。関数に渡してその「this」値として使用する値。

このパラメータが空の場合、値「undefined」がその「this」値として渡されます。

技術的詳細

返り値: 配列のいずれかの要素がテストを通過した場合、配列要素のインデックスを返します。それ以外の場合は -1 を返します。
JavaScript バージョン: ECMAScript 6

ブラウザのサポート

テーブルの数字は、この方法を完全にサポートする最初のブラウザバージョンを示しています。

Chrome Edge Firefox Safari Opera
Chrome 45 Edge 12 Firefox 25 Safari 7.1 Opera 32
2015年9月 2015年7月 2014年7月 2014年9月 2015年9月

注記:Internet Explorer はサポートしていません findIndex() メソッド。

関連ページ

チュートリアル:JavaScript 配列

チュートリアル:JavaScript 配列 Const

チュートリアル:JavaScript 配列メソッド

チュートリアル:JavaScript 配列のソート

チュートリアル:JavaScript 配列のイテレーション