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()。