JavaScript 数组 find()
示例 1
查找第一个值大于 18 的元素的值
const ages = [3, 10, 18, 20];
function checkAge(age) {
return age > 18;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.find(checkAge);
}
试试看 »
描述
The find()
方法返回第一个通过测试的元素的值。
The find()
方法对每个数组元素执行一个函数。
The find()
方法如果未找到任何元素,则返回 undefined
。
The find()
方法不会对空元素执行函数。
The find()
方法不会更改原始数组。
数组查找方法
方法 | 查找 |
---|---|
indexOf() | 具有指定值的第一个元素的索引 |
lastIndexOf() | 具有指定值的最后一个元素的索引 |
find() | 通过测试的第一个元素的值 |
findIndex() | 通过测试的第一个元素的索引 |
findLast() | 通过测试的最后一个元素的值 |
findLastIndex() | 通过测试的最后一个元素的索引 |
语法
array.find(function(currentValue, index, arr),thisValue)
参数
function() | 必需的。 要为每个数组元素运行的函数。 |
currentValue | 必需的。 当前元素的值。 |
index | 可选的。 当前元素的索引。 |
arr | 可选的。 当前元素的数组。 |
thisValue | 可选的。默认值 undefined 。传递给函数作为其 this 值的值。 |
返回值
类型 | 描述 |
一个值 | 通过测试的第一个元素的值。 否则返回 undefined 。 |
示例 2
查找第一个值大于特定数字的元素的值
<p><input type="number" id="ageToCheck" value="18"></p>
<button onclick="myFunction()">试试看</button>
<p id="demo"></p>
<script>
const ages = [4, 12, 16, 20];
function checkAge(age) {
return age > document.getElementById("ageToCheck").value;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.find(checkAge);
}
</script>
试试看 »
浏览器支持
find()
是 ECMAScript6 (ES6) 功能。
ES6 (JavaScript 2015) 自 2017 年 6 月起在所有现代浏览器中都受支持
Chrome 51 | Edge 15 | Firefox 54 | Safari 10 | Opera 38 |
2016 年 5 月 | 2017 年 4 月 | 2017 年 6 月 | 2016 年 9 月 | 2016 年 6 月 |
find()
在 Internet Explorer 中不受支持。