JavaScript仅在运算结果<100时运行运算

问题描述

仅在运算结果为

我尝试了以下代码,但是+ =操作执行了两次,但是我只希望它在if语句之后执行

let progress = 0

function earn(howmuch) {
    if (progress += howmuch < 100) {
        console.log(progress) // console.logs 1
        progress += howmuch
        console.log(progress) // console.logs 2
    }
}

document.querySelector('.click-area').addEventListener('click',function() {
    earn(1)
}

感谢帮助

解决方法

F_TEXT_CHAR是一项作业。

在您的情况下,条件检查和if中的情况都会增加。

您应该将条件中的+=更改为+=,这样就不会更改值,只是临时计算出的值

,

您必须在条件之外进行变量的计算,以便根据需要进行比较。

这里有个例子:

let progress = 0;

function earn(howmuch) {
    let new_progress = progress + howmuch;
    if (new_progress < 100) { // Here you had the problem
        progress = new_progress;
        console.log(progress); // console.logs 1
    }
}

document.querySelector('.click-area').addEventListener('click',function() {
    earn(1)
});
<button class="click-area">Click</button>

在您的情况下,您在条件中进行了赋值+=,直到下一行才生效。

在有条件的前一行进行计算,即可解决问题。