通过提示将值添加到当前值

问题描述

我正在用 Javascript 模拟咖啡机,并且必须制作向机器加水的方法。有一些条件必须检查,我做到了,但我遇到的问题是将通过提示导入的新值添加到当前值。

这是我所拥有的:

addWater: function() {
    this.water = 0;

    let addWater = prompt('Unesite kolicinu vode koju zelite da dodate');

    if (addWater === null || addWater.trim().length === 0) {
        alert('Morate uneti koliko vode zelite');
        return;
    } else if (isNaN(addWater) || addWater.startsWith('-')) {
        alert('Unos mora biti pozitivna brojcana vrednost');
        return;
    } else if (addWater > 400) {
        alert('Maksimalan unos vode je 400');
        return;
    } else {
        addWater = Number(addWater);
        this.water += addWater;
    }

    this.waterStatus();
},

这样它只输入值当前值,它不加数字,因为条件之一是水不超过 400。

我做错了什么?

解决方法

在函数体的顶部,有一个声明 this.water = 0; 。因此每次调用该函数时,该值将始终填充一个新值,而不是添加。你的代码应该是这样的

addWater: function () { 
    let addWater = prompt('Unesite kolicinu vode koju zelite da dodate');

    if (addWater === null || addWater.trim().length === 0) {
        alert('Morate uneti koliko vode zelite');
        return;
    } else if (isNaN(addWater) || addWater.startsWith('-')) {
        alert('Unos mora biti pozitivna brojcana vrednost');
        return;
    } else if (addWater > 400) {
        alert('Maksimalan unos vode je 400');
        return;
    } else {
        addWater = Number(addWater);
        this.water += addWater;
    }

    this.waterStatus();
}