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

  • 相关阅读:
    文本挖掘预处理之TF-IDF
    文本挖掘预处理之向量化与Hash Trick
    文本挖掘的分词原理
    MCMC(四)Gibbs采样
    MCMC(三)MCMC采样和M-H采样
    编译c时提示“dereferencing type-punned pointer will break strict-aliasing rules”如何处理?
    ubuntu下添加新的ppa软件源后出现"Error: retrieving gpg key timed out"如何处理?
    如何创建离线网页?
    ubuntu下如何安装wpantund?
    tmux如何调节窗口大小?
  • 原文地址:https://www.cnblogs.com/psxiao/p/11606447.html
Copyright © 2011-2022 走看看