首页前端开发JavaScriptJS数组学习之返回满足给定条件的首个元素

JS数组学习之返回满足给定条件的首个元素

时间2024-01-30 05:30:02发布访客分类JavaScript浏览1152
导读:收集整理的这篇文章主要介绍了JS数组学习之返回满足给定条件的首个元素,觉得挺不错的,现在分享给大家,也给大家做个参考。在之前的文章《JS数组学习之返回满足给定条件的全部元素》中,我们介绍了过滤数组元素,获取满足给定条件的全部元素的方法。这次...
收集整理的这篇文章主要介绍了JS数组学习之返回满足给定条件的首个元素,觉得挺不错的,现在分享给大家,也给大家做个参考。在之前的文章《JS数组学习之返回满足给定条件的全部元素》中,我们介绍了过滤数组元素,获取满足给定条件的全部元素的方法。这次我们继续聊聊过滤元素,介绍一下获取第一个满足给定条件元素的方法,有需要的朋友可以学习了解一下~

今天本文的主要内容是:遍历数组,检测数组中元素是否满足指定条件,返回满足条件的首个数组元素。简单来说:就是根据指定条件过滤数组元素,返回符号条件的第一个数组元素的值。

下面我们来介绍3种方法,先从熟悉的for循环开始,然后介绍2种内置函数--看看这两个函数能怎么过滤数组元素,获取第一个符合条件的元素。

方法1:利用for循环

实现思想:利用for语句来遍历数组,在每次循环中判断数组元素是否符合条件;当有第一个元素满足条件,就立马输出,然后使用break语句退出整个循环。

下面通过实例来具体了解一下:

示例1:输出数组中年龄大于等于 18 的第一个元素

VAR ages = [3, 10, 18, 20];
    for(var i=0;
    iages.length;
i++){
    	if (ages[i] >
= 18) {
    		console.LOG(ages[i]);
    		break;
	}
}
    

ages数组中大于等于 18的元素有 18和20两个,但18在20前,因此满足添加的第一个元素为18。因此输出结果为:

示例2:输出数组中第一个非数字的元素

var a = [1,"", 10, "red", 20,"22"];
    for(var i=0;
    ia.length;
i++){
    	var re = /^[0-9]+.?[0-9]*/;
//判断字符串是否为数字  //判断正整数/[1−9]+[0−9]∗]∗/   if (!re.test(a[i])) {
         console.log(a[i]);
    		break;
  }
 }
    

输出结果:

方法2:利用 find() 方法

find() 方法为数组中的每个元素都调用一次函数,在回调函数内利用给定添加过滤元素,返回第一个通过检测的元素。

  • 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。

  • 如果没有符合条件的元素返回 undefined

语法:

array.find(function callbackfn(Value,index,array),thisValue)

function callbackfn(Value,index,array):一个回调函数,不可省略,最多可接受三个参数:

  • value:当前数组元素的值,不可省略。

  • index:当前数组元素的数字索引。

  • array:当前元素属于的数组对象。

返回值:返回符合测试条件的第一个数组元素值,如果没有符合条件的则返回 undefined。

下面通过实例来具体了解一下:

示例1:输出数组中年龄大于等于 18 的第一个元素

function checkAdult(age) {
        return age >
    = 18;
}
    var ages = [3, 10, 18, 20];
    var age=ages.find(checkAdult);
    console.log(age);
    

输出结果:

18

示例2:输出数组中第一个非数字的元素

function checkAdult(num) {
    	var re = /^[0-9]+.?[0-9]*/;
    //判断字符串是否为数字  //判断正整数/[1−9]+[0−9]∗]∗/     return !re.test(num);
}
    var a = [1,"", 10, "red", 20,"22"];
    console.log(a.find(checkAdult));
    

输出结果:

方法3:利用 findIndex() 方法

findIndex() 方法为数组中的每个元素都调用一次函数,在回调函数内利用给定添加过滤元素,返回第一个通过检测的元素的索引位置。

  • 当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。

  • 如果没有符合条件的元素返回 -1

语法:

array.findIndex(function callbackfn(Value,index,array),thisValue)

该方法的语法和 find()类似,参数取值可以参数find()方法。

下面通过实例来具体了解一下:

示例1:输出数组中年龄大于等于 18 的第一个元素

function checkAdult(age) {
        return age >
    = 18;
}
    var ages = [3, 10, 18, 20];
    var age=ages.findIndex(checkAdult);
    console.log(age);
    console.log(ages[age]);
    

findIndex() 方法可以返回第一个满足条件的元素索引,根据该索引,使用“数组名[索引]”的形式就可以获取到元素值。因此输出结果为:

示例2:输出数组中第一个非数字的元素

function checkAdult(num) {
    	var re = /^[0-9]+.?[0-9]*/;
    //判断字符串是否为数字  //判断正整数/[1−9]+[0−9]∗]∗/     return !re.test(num);
}
    var a = [1,"", 10, "red", 20,"22"];
    var index=a.findIndex(checkAdult);
    console.log(index);
    console.log(a[index]);
    

输出结果为:

好了,就说到这里了,有需要的可以看:javascript视频教程

以上就是JS数组学习之返回满足给定条件的首个元素的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

JS数组

若转载请注明出处: JS数组学习之返回满足给定条件的首个元素
本文地址: https://pptw.com/jishu/592102.html
解析webpack3升级到webpack4版本遇到的问题(总结) 什么是链表?链表与数组的区别?

游客 回复需填写必要信息