JavaScript 陣列 findIndex()
示例 1
查詢第一個值大於 18 的元素
const ages = [3, 10, 18, 20];
ages.findIndex(checkAge);
function checkAge(age) {
return age > 18;
}
自己動手試一試 »
描述
findIndex()
方法對陣列的每個元素執行一個函式。
findIndex()
方法返回透過測試的第一個元素的索引(位置)。
如果沒有找到匹配項,findIndex()
方法返回 -1。
findIndex()
方法不會對空陣列元素執行該函式。
findIndex()
方法不會改變原始陣列。
陣列查詢方法
方法 | 查詢 |
---|---|
indexOf() | 具有指定值的第一個元素的索引 |
lastIndexOf() | 具有指定值的最後一個元素的索引 |
find() | 透過測試的第一個元素的值 |
findIndex() | 透過測試的第一個元素的索引 |
findLast() | 透過測試的最後一個元素的值 |
findLastIndex() | 透過測試的最後一個元素的索引 |
語法
array.findIndex(function(currentValue, index, arr), thisValue)
引數
引數 | 描述 |
function() | 必需。 為每個陣列元素執行的函式。 |
currentValue | 必需。 當前元素的值。 |
index | 可選。 當前元素的索引。 |
arr | 可選。 當前元素所屬的陣列。 |
thisValue | 可選。預設 undefined 。作為其 this 值傳遞給函式的值。 |
返回值
型別 | 描述 |
Number | 透過測試的第一個元素的索引。 否則為 -1。 |
更多示例
查詢第一個值大於輸入值的元素
<p><input type="number" id="toCheck" value="18"></p>
<button onclick="myFunction()">測試</button>
<p>任何值大於: <span id="demo"></span></p>
<script>
const numbers = [4, 12, 16, 20];
function checkValue(x) {
return x > document.getElementById("toCheck").value;
}
function myFunction() {
document.getElementById("demo").innerHTML = numbers.findIndex(checkValue);
}
</script>
自己動手試一試 »
瀏覽器支援
findIndex()
是 ECMAScript6 (ES6) 的一個特性。
自 2017 年 6 月起,所有現代瀏覽器都支援 ES6 (JavaScript 2015)
Chrome 51 | Edge 15 | Firefox 54 | Safari 10 | Opera 38 |
2016 年 5 月 | 2017 年 4 月 | 2017 年 6 月 | 2016 年 9 月 | 2016 年 6 月 |
Internet Explorer 不支援 findIndex()
。