• 技术文章 >web前端 >js教程

    JS数组学习之判断数组元素是不是都满足给定条件

    青灯夜游青灯夜游2021-08-26 17:24:51原创488
    在上一篇文章《JS数组学习之遍历数组,将元素值全部扩大一倍》中,我们介绍了遍历数组,对数组中每个元素进行处理的方法。这次继续聊聊数组的遍历,介绍一下检测数组元素是否全部符合指定条件的几种方法,有需要的朋友可以学习了解一下~

    那么如何判断数组中元素是否满足指定条件?例如遍历数组,检查数组中元素是否都为偶数,这要怎么操作?

    下面我们来介绍3种方法,先从熟悉的for循环开始,然后介绍2种内置函数--看看使用它们来怎么检测。

    方法1:利用for循环

    实现思想:

    for(var i=0;i<a.length;i++){
    }

    因此实现代码可以这么写:

    var a = [2,4,5,6,8],b=0;
    for(var i=0;i<a.length;i++){
    	if (a[i] % 2 != 0) {
    		b=0
    		break;
    	}else{
    		b++;
    	}
    }
    if (b) {
    	console.log("都是偶数");
    } else {
    	console.log("不全为偶数");
    }

    分析代码:

    因为数组中元素5不是偶数,因此输出结果为:

    1.png

    方法2:利用some()方法

    some()方法可以检测数组中是否存在符合条件的元素。换个角度思考,也可以用来检测数组中的所有元素是否都不符合指定条件,都不符合的话就返回 false,有一个或者多个符合的话就返回 true。(和上文代码是一个思路)

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

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

    我们来看看实现代码:

    function f(value, index, ar) {
        if (value % 2 != 0) {
            return true;
        }
    }
    var a = [2,4,6,8,10,12];
    var b = a.some(f);
    if (b) {
    	console.log("不全为偶数");
    } else {
    	console.log("都是偶数");
    }

    可以看出:因为数组中元素都是偶数,因此输出结果为:

    5.png

    我们将数组元素12改为11,则输出结果为:

    6.png

    方法3:使用every()方法

    every()方法可以检测数组元素是否全部符合指定条件。语法如下,参数取值情况可参考上文some() 方法

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

    我们来看看实现代码:

    function f(value, index, ar) {
        if (value % 2 == 0) {
            return true;
        }else {
            return false;
        }
    }
    var a = [2,4,6,8,10,11];
    var b = a.every(f);
    if (b) {
    	console.log("都是偶数");
    } else {
    	console.log("不全为偶数");
    }

    输出结果为:

    不全为偶数

    every()和some() 方法的区别:

    只有当数组中的所有元素都满足条件时,every() 才返回 true;只要数组中有一个元素满足条件,some() 就返回 true。

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

    以上就是JS数组学习之判断数组元素是不是都满足给定条件的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    上一篇:JS数组学习之遍历数组,将元素值全部扩大一倍 下一篇:一文讲解JS中ES6代理Proxy用法(代码分享)
    线上培训班

    相关文章推荐

    • JS数组学习之如何根据数组下标删除任意元素• JS数组学习之怎么拼接全部元素,返回一个字符串• JS数组学习之迭代数组计算元素总和、将值连接成字符串• JS数组学习之遍历数组,将元素值全部扩大一倍

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网