被一个简单的问题卡住了,变量a,在10和100之间,减到10则++,加到100则--,一直循环,最好只用一次setInterval如何做,只用变量a,不借助第二个变量,用if else和switch
用一个变量来保存每次的增量,1 或 -1,达到 100 改为 -1,退到 10 改为 1 即可。
下面这段代码为了不死循环,用 count 来控制了一下总量,设置成 100 可以看到 100 处的折回,但看不到回到 10 的再一次折返,改成 200 或者 1000 就能看到。
function doIt() { let a = 10; let delta = 1; // 增量 let count = 0; const timer = setInterval(() => { a += delta; if (a >= 100) { delta = -1; } else if (a <= 10) { delta = 1; } console.log(a); // 测试时为了不让它死循环,加了一个控制 if (++count > 100) { clearInterval(timer); } }, 100);}doIt();
如果非要用 ++
或者 --
来算,可以把这两个操作封装成函数来处理,比如
function doIt() { let a = 10; const increase = () => a++; const decrease = () => a--; let calc = increase; let count = 0; const timer = setInterval(() => { calc(); if (a >= 100) { calc = decrease; } else if (a <= 10) { calc = increase; } console.log(a); // 测试时为了不让它死循环,加了一个控制 if (++count > 200) { clearInterval(timer); } }, 50);}
其中 calc = decrease
和 calc = increase
那里,也可以直接给 Lambda 或者函数,这样就不需要预定义加/减处理了函数了。只是从模块化的思想来考虑,这里预定义一下比较好。
let a = 10;setInterval(() => { if (a === 100) { a = -100; } else if (a === -10) { a = 10; } else { a = a > 0 ? a + 10 : a - 10; } console.log(Math.abs(a));}, 1000);
let a = 10;setInterval(() => { if(a >= 100){ a = -100 } a++ if(a >= -10 && a <= 10){ a = 10 } console.log(Math.abs(a));}, 200);
最后输出的其实是Math.abs(a)
并不是a
我有一个掷骰子猜谜游戏,我试图评估用户的输入,以确保他们不能输入小于1和大于6的数字,不幸的是,只有我的if语句,他们仍然可以输入这些数字,尽管显示一个字符串输入无效,我想做一个while循环,不断要求他们输入等于或大于1的有效数字和等于且小于 6,如果用户不断输入不正确的数字,while 循环将继续要求他们输入有效数字,直到他们输入一个,然后该数字将正常运行程序。
关于正则的一个小问题 /#\/((\w)+)/.exec("/a-web/#/abc?") 返回值是 ['#/abc', 'abc', 'c', index: 7, input: '/a-web/#/abc?', groups: undefined] 数组第二项是匹配项(\w+) 返回 'abc' 数组的第三项 返回值 'c'怎么理解啊 没啥尝试
我目前正在Codecademy上学习JavaScript,我遇到了一些问题。我在一个叫做“建造石头,布,剪刀”的部分,有一个部分有一个条件,如果数学。random()大于0.33小于0.66,计算机将选择纸张。我的问题是,如何建立一个if条件,即某个东西大于X,但同时小于Y?
我想使用决策表实现基于流口水中较少和较大值的简单规则。 在drl中实现规则非常简单,例如: 但是我怎样才能把它翻译成流口水的决策表呢?到目前为止,我看到的所有例子都是在条件单元格中进行比较。甚至可以在值单元格中进行比较吗? 我看到的所有示例的格式如下: 但这只适用于1条规则,执行以下操作完全有不同的含义: 甚至可以执行以下操作吗? 实施这些规则的正确方式是什么?
如果我有一个如下所示的数据帧, 我怎么能得到一个新的数据框只包含价格大于10美元(包括)和小于100美元(包括)像这样。谢谢。
问题内容: 我有一个看起来像这样的表: 我想做的是返回一组行,其中值按’val’分组,并带有fkeys数组,但仅在fkeys数组大于1的情况下。因此,在上面的示例中,返回值将是看起来像: 我有以下查询聚合数组: 但这返回类似: 最好的方法是什么?我猜可能是将现有查询用作子查询,并对它进行求和/计数,但这似乎效率很低。任何反馈都将真正有帮助! 问题答案: Use子句过滤具有以下内容的组