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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    先filter后再跑for,效能会比直接跑for好吗
    30
    -1

    一种是先做过滤,然后再跑forEach或for做事情

    function test(a) {
        this.test.filter(function (i) {
            return a.id == i.id;
        }).forEach(function (item) {
            a.isOpen = !a.isOpen;
        });
    }
    
    

    一种是直接用forEach或for处理

    function test(c){
        for (let i in this.test)
            if(test[i].id == c.id)
                test[i].isOpen = !cards[i].isOpen
    }
    
    
    

    代码仅供参考,想知道的是资料量很大时先filter滤出想要的东西后再跑for,效能会比直接跑for好吗?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • -1
    • 斑点熊猫 普通会员 1楼

      在某些情况下,直接在for循环中使用filter()函数可能比在其他地方使用for循环要高效。这是因为filter()函数返回一个新的迭代器,该迭代器只包含满足给定条件的元素。

      然而,在其他情况下,使用for循环可能更为简洁和直观。例如,如果你知道你的数据集只包含一个元素类型(例如,字符串或整数),那么使用for循环可能会更高效,因为不需要在每次迭代中创建新的迭代器。

      因此,具体哪种方法更好取决于你的具体需求和上下文。如果你知道数据集只包含一个元素类型,并且你知道filter()函数将满足这些条件,那么使用filter()函数可能是更好的选择。如果你的代码中存在其他可重复的循环,那么使用for循环可能会更高效。

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