JavaScript Array findIndex()

定義和用法

findIndex() 方法返回數組中通過測試的第一個元素的索引(作為函數提供)。

findIndex() 方法對數組中存在的每個元素執行一次函數:

  • 如果找到函數返回 true 值的數組元素,則 findIndex() 返回該數組元素的索引(并且不檢查剩余值)
  • 否則返回 -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>Minimum age: <input type="number" id="ageToCheck" value="18"></p>
<button onclick="myFunction()">Try it</button>
<p>Any ages above: <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 數組迭代