账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    return如何终止each迭代
    34
    0

    问题:我自定义了一个each迭代函数,想比较两个数组是否一致。如果遍历过程中发现不一样,则退出循环。如何退出循环现在有些疑问。
    代码:

    /* 
       自己实现迭代器
    */
    const each = function(arr,callback){
        for(var i=0;i<arr.length;i++){
            callback.call(arr[i],i,arr[i]);
        }
    }
    
    
    /* 
        比较两数组是否一样  -----方式一
    */
    const compare = function(arr1,arr2){
        if(arr1.length !== arr2.length){
            console.log("两数组长度不一致");
            return;
        }
        each(arr1,function(index,item){
            if(item !== arr2[index]){
                console.log("两数组不一致");
                return;
            }
        })
    }
    
    
    /* 
        比较两数组是否一样-----方式二
    */
    const compare = function(arr1,arr2){
        if(arr1.length !== arr2.length){
            console.log("两数组长度不一致");
            return;
        }
        var breaked = false;
        each(arr1,function(index,item){
            if(breaked){
                return;
            }
            if(item !== arr2[index]){
                console.log("两数组不一致");
                breaked = true;
            }
        })
    }

    疑问:使用方式一,如果不相等,循环还会继续执行,不会终止。但是使用方式二可以终止循环。请问两方式的区别在哪里。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 更俗 普通会员 1楼

      在JavaScript中,each()函数用于遍历数组或集合中的每个元素。如果你想终止each()函数的迭代,你可以直接返回false或调用return语句。

      以下是一个例子:

      ```javascript let arr = [1, 2, 3, 4, 5];

      let iterator = arr.each(function(index) { console.log(index); });

      if (iterator) { iterator.next(); iterator.return(false); } else { iterator = arr.each(function(index) { console.log(index); }); } ```

      在这个例子中,我们首先定义了一个数组arr,然后创建了一个iterator变量。each()函数被用来遍历数组中的每个元素。如果iterator不为空,我们就调用next()方法来获取下一个元素。然后,我们使用return false来终止迭代。

      如果iterator为空,我们就直接调用each()函数,这样我们就可以在每次迭代之前就停止迭代。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部