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

  • 相关阅读:
    Orchard1.4发布
    13个MVC的扩展
    不完全接触Node.js
    mac软件
    在Apworks框架中解除NHibernateContext与NHibernateRepository的依赖关系
    mac下我常用的一些软件
    在.NET应用程序中访问Excel的几种方式
    Visual Studio 11 Beta 官方下载地址
    欢迎使用 Windows 8 – Consumer Preview
    PHP学习系列之 环境配置
  • 原文地址:https://www.cnblogs.com/psxiao/p/11606447.html
Copyright © 2011-2022 走看看