zoukankan      html  css  js  c++  java
  • forEach陷阱

    前言:forEach没有返回值!!!设置了返回值也没有返回值。

    一、for循环的对比

        var arr = [1,2,3,4,5];
         
        function test(){
            for(var i =0; i<arr.length; i++){    
                if(arr[i]== 3){
                    return '找到3了,并终止了循环';
                }    
                console.log(arr[i]);
            }
        }
        test();

    运行结果:输出了1,2。 并且终止了循环。没有继续输出后面的4,5;

    ②、console.log(test());

    var arr = [1,2,3,4,5];
     
    function test(){
        for(var i =0; i<arr.length; i++){    
            if(arr[i]== 3){
                return '找到3了,并终止了循环';
            }    
            console.log(arr[i]);
        }
    }
    console.log(test());

    二、forEach循环的对比

    var arr = [1,2,3,4,5];
    function test2(){
        arr.forEach(function(item){
           if(item == 3) {
               return '找到3了,并跳过了本次循环';
           }
           console.log(item);
        });    
    }
    test2();
    

    运行结果:输出了1,2,4,5。 并没有终止循环,而是当item==3的时候,跳出了本次循环

    ②、console.log(test2());

     ②、console.log(test2());

    var arr = [1,2,3,4,5];
    function test2(){
        arr.forEach(function(item){
           if(item == 3) {
               return '找到3了,并跳过了本次循环';
           }
           console.log(item);
        });    
    }
    console.log(test2());

    运行结果:输出了1,2,4,5,undefined。 并没有输出我们需要的结果,而是返回了一个undefined。

    三、解决方案

     Array.some()的应用

    var arr = [1,2,3,4,5];
    function test3(){
        arr.some(function(item){
           if(item == 3) {
               return '找到了3,并终止了循环';
           }
           console.log(item);
        });    
    }
    console.log(test3());

    运行结果:输出了1,2,undefined。 终止了循环,但是没有输出我们需要的结果,而是返回了一个undefined。

     Array.every()结果和some()结果一样

    转自https://blog.csdn.net/w390058785/article/details/79916266

  • 相关阅读:
    Ubuntu安装后root 用户无法使用的解决方法
    struts2 上传 文件 注意问题
    WinSCP无法连接 ubuntu 的解决方法
    TOMCAT 6 中配置HTTPS
    Linux上安装ImageMagick和JMagick
    linux 下 Nginx 0.8.40的安装
    Displaying icons in a Flex List control
    Styling the Alert control’s message text
    Displaying icons in a Flex ComboBox control
    Styling the Alert control’s title bar
  • 原文地址:https://www.cnblogs.com/psxiao/p/11606447.html
Copyright © 2011-2022 走看看