JavaScript数组之find——返回第⼀个符合条件的元素
定义和⽤法
find()⽅法返回数组内符合条件的第⼀个元素。
find() ⽅法为数组中的每个元素都调⽤⼀次函数执⾏:
当数组中的元素在测试条件时返回true时, find() 返回符合条件的元素,之后的值不会再调⽤执⾏函数。
如果没有符合条件的元素返回 undefined。
对于空数组,函数不执⾏。
find并没有改变数组的原始值。
浏览器⽀持
浏览器Chrome IE Firefox Safari opera
⽀持版本45.012.025.07.132.0
注意: IE 11 及更早版本不⽀持 find() ⽅法。
语法
array.find(function(currentValue, index, arr),thisValue)
参数
参数描述
function(currentValue, index,arr)必填。数组的每个元素都要执⾏。
可选。传递函数的值⼀般⽤“this”值。
thisValue
如果这个参数为空,"undefined" 会传递给 "this" 值。
function内传递的参数说明如下表:
参数描述javascript数组对象
currentValue必填。当前元素。
index可选。当前元素的索引值。
arr可选。当前元素所属的数组对象。
thisValue有什么作⽤?
⽤于传递值给function。
举个例⼦,以下⽤ find() ⽅法,获取年龄⼤于18岁的第⼀个元素。
1var ages = [3, 10, 18, 20];
2function checkAdult(age) {
3return age >= 18;
4 }
5function myFunction() {
6    ElementById("demo").innerHTML = ages.find(checkAdult);
7 }
这⾥demo的输出值为 18 。
如果需要向⽅法传递参数呢?则可以使⽤ thisValue ,将参数传递给对应的函数(这⾥指的是 checkAdult )。然后,在函数内,将传递的参数⽤this表⽰。对应代码如下:
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= this;
}
function myFunction() {
var minAge = 18;
}
这⾥输出值为 18 。
技术细节
返回值返回符合测试条件的第⼀个数组元素值,如果没有符合条件的则返回  undefined 。JavaScript版本:ECMAScript 6
数组的find相关⽅法
filter : 检测数值元素,并返回符合条件所有元素的数组。
findIndex :返回符合传⼊测试(函数)条件的数组元素索引。
参考⽹址

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。