JS实现数组的find⽅法
JS实现数组的常⽤⽅法
编程思路:先确定⽅法要传⼊的参数和返回的值,再通过原型定义,在Array的原型上添加⾃定的⽅法,验证是否达到预期效果。1、find的功能
array.find(function(currentValue, index, arr), thisValue)
功能:返回通过测试(函数内判断)的数组的第⼀个元素的值。简单理解就是:传⼊判断条件,判断数组各个元素,返回满⾜条件的第⼀个值。
1. 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调⽤执⾏函数。
2. 如果没有符合条件的元素返回 undefined
3. 注意: find() 对于空数组,函数是不会执⾏的。
4. 注意: find() 并没有改变数组的原始值。
2、分析
分析:
1. 传⼊:参数1为条件函数、参数2(可选)为调⽤的数组(默认是this)。
2. 返回: 返回满⾜条件的第⼀个元素,不满⾜条件则返回undefined
3、实现与测试
实现:
Find=function(condition, arr =this){
//将满⾜条件的元素放⼊到临时的数组中
let temp =[];
//遍历当前数组
for(let i =0, len = arr.length; i < len; i++){
const item = arr[i];
// 如果第⼀项存在,则停⽌遍历
if(temp[0]){
break;
}else{
// 如果第⼀项不存在,则执⾏判断语句,满⾜则推进栈。不满⾜则继续遍历
if(condition(item, i, arr)){
temp.push(item)
js数组方法总结}
}
}
/
/可以直接只返回temp[0],全都不满⾜条件时,⾃然为undefined
return temp[0]|| undefined
}
测试:
const myCondition=function(item, index, arr){return item >2}
[1,2,3,4].myFind(myCondition)//3
const myCondition=function(item, index, arr){return item >5}
[1,2,3,4].myFind(myCondition)//undefined

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