javascript - JavaScript 计数器变量在两个值之间波动
问题描述
我试图在 0 和 2 的两个范围之间连续波动变量“z”0.1。当它达到最大值 2 时,我希望变量“z”递减。当它达到 0 的最小值时,我希望变量“z”增加。到目前为止,我的代码所做的只是返回数字 1。
注意:我也在 github.com/mattdesl 的 canvas-sketch 上使用这个
let z = 1;
let count = 0.1;
setInterval(function(){
if(z == 2) count *= -1;
if(z == 0) count *= +1;
return z += count;
}, 1000);
console.log(z);
解决方案
尝试这个:
let z = 1;
let increment = 0.1
setInterval(function(){
if(z === 2) increment = -0.1;
if(z === 0) increment = 0.1;
z = Math.round((z + increment) * 10) / 10;
console.log(z);
}, 1000);
z线在这里很关键。试试 z += increment ,你会得到 JS 舍入错误。所以我们只需要确保在添加后将数字清除到小数点后一位。
推荐阅读
- batch-file - 用批处理删除文本文件的行
- amazon-web-services - 具有跨账户 S3 访问的 AWS CodeDeploy 失败
- sqlite - sqflite颤动中的AND语句
- java - 我如何有条件地阻止用户导航到 Eclipse E4 RCP 应用程序中的不同视图/部分?
- html - HTML 录音权限
- reactjs - getting child categories base on parent category id using promises
- javascript - Lodash“每个”方法上的异步等待,其中包含 Mongoose 查询
- java - 提交 Spark 作业时是什么导致“java.net.URISyntaxException:绝对 URI 中的相对路径”?
- angular - 嵌套在更多组件中的组件不会在更改组件中丢失参考
- c# - 使用 ASP.NET WebForms 在 iframe 中记住会话