首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为汽车黄金饼干点击愤怒饼干开关

为汽车黄金饼干点击愤怒饼干开关
EN

Code Review用户
提问于 2017-12-13 00:13:55
回答 2查看 1.2K关注 0票数 4

有时候你觉得自己像个愤怒的饼干,有时却不想。

下面是我创建的一个函数,它将在间隔上运行,所以当我想在Wrath + Gold cookie和Gold cookie之间切换时,我所要做的就是设置一个布尔值。

代码语言:javascript
运行
复制
// allows me to turn on and off the clicking of the Wrath Cookies
var wrathCookieSwitchOn = false;

var SpecialCookieClicker =
    setInterval(function() {
        if (wrathCookieSwitchOn){
            Game.shimmers.forEach(function(shimmer) {
                if (shimmer.type == "golden") { shimmer.pop() }
            })
        } else {
            Game.shimmers.forEach(function(shimmer) {
                if(shimmer.type == "golden" && shimmer.wrath == 0)
                {
                    shimmer.pop()
                }
            })
        }
    }, 500);

我所要做的就是更改开发人员控制台中的变量值,以影响这段代码。

我怎么能做得更好呢?

EN

回答 2

Code Review用户

回答已采纳

发布于 2017-12-13 00:23:28

我怎么能做得更好呢?

最初,我的眼睛是针对两个分支的条件和方法,以消除冗余。如果将wrathCookieSwitchOn的条件检查移到forEach内的if中,行会太长吗?

代码语言:javascript
运行
复制
Game.shimmers.forEach(function(shimmer) {
    if (shimmer.type == "golden" && (wrathCookieSwitchOn || shimmer.wrath == 0) { 
        shimmer.pop() 
    }
})

必须询问shimmer.wrath的类型是否需要是整数。如果任何虚假值都足够,那么可以将shimmer.wrath == 0简化为!shimmer.wrath,否则,使用严格的等式:shimmer.wrath === 0

除此之外,我唯一的想法可能是通过一些技术来删除闭包,比如运行或者仅仅定义一个函数.或者,如果ES-2015是一个选项,将其简化为箭头函数。

更新

作为对你的答案的回应,我将展示我考虑过的另一个选项,一些人认为这个选项的可读性可能较低,但是的,就像您键入的那样:“如果我们要使用一行它,那么让我们只使用一行吧!”

代码语言:javascript
运行
复制
Game.shimmers.forEach(function(shimmer) {
    shimmer.type == "golden" && (wrathCookieSwitchOn || shimmer.wrath == 0) && shimmer.pop();
});

如果允许的话,可以很好地发挥箭头的作用。

票数 6
EN

Code Review用户

发布于 2017-12-13 01:50:55

我可以像萨姆说的那样做,我的风格是使用三元语句,如下所示:

代码语言:javascript
运行
复制
var SpecialCookieClicker = 
    setInterval(function() {
        Game.shimmers.forEach(function(shimmer) {
            shimmer.type == "golden" && (shimmer.wrath == 0 || wrathCookieSwitchOn) ? shimmer.pop() : 0;
        })
    }, 500);

我的意思是,如果我们要用单线,那就单行吧!

票数 5
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/182635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档