Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法重新定义“a”;让我们;当某个条件变为真时的值?_Javascript_Loops_For Loop_Conditional Statements_Timedelta - Fatal编程技术网

Javascript 有没有办法重新定义“a”;让我们;当某个条件变为真时的值?

Javascript 有没有办法重新定义“a”;让我们;当某个条件变为真时的值?,javascript,loops,for-loop,conditional-statements,timedelta,Javascript,Loops,For Loop,Conditional Statements,Timedelta,温柔一点: 我是Javascript新手,对如何在循环中的条件变为真后重新定义“let”值的for循环(或建议更合适的另一个循环)感到好奇。当最后一个“else if”条件变为True时,它将通过向其添加常量来重新定义Value1值,然后再次开始前两个条件检查。无限循环 我在下面提供了我当前代码的一个示例: const fetch = require('node-fetch'); const api_url = 'https://an-api-i-am-using-that-returns-Va

温柔一点:

我是Javascript新手,对如何在循环中的条件变为真后重新定义“let”值的for循环(或建议更合适的另一个循环)感到好奇。当最后一个“else if”条件变为True时,它将通过向其添加常量来重新定义
Value1
值,然后再次开始前两个条件检查。无限循环

我在下面提供了我当前代码的一个示例:

const fetch = require('node-fetch');
const api_url = 'https://an-api-i-am-using-that-returns-Value1.com'
let Value1 = 100;
const add_to = 10;

async function getTotal() {

    const response = await fetch(api_url);

    Number_Returned = await response.json();
    Number_Left = Value1 - Number_Returned
    Time_Left = Number_Left * 60;

    if (Number_Left > 0){
        console.log(Number_Left)

        var d = parseInt(Time_Left / (3600 * 24));
        console.log(d)

        nd = Time_Left % (24 * 3600);
        var h = parseInt(nd/3600);
        console.log(h)

        Time_Left %= 3600;
        var m = parseInt((Time_Left/60));
        console.log(m)

        const longEnUSFormatter = new Intl.DateTimeFormat('en-US', { dateStyle: 'full', timeStyle: 'long' });

        var date = new Date();
        date.setMinutes(date.getMinutes() + (d * 24 * 60) + (h * 60) + m);
        console.log(longEnUSFormatter.format(date))
    }
    else if (Number_Left == 0 && Value1 == Number_Returned) {
        console.log(Number_Left)

        d = "no";
        console.log(d)
        h = "no";
        console.log(h)
        m = "no";
        console.log(m)
        date = "Today";
        console.log(date)
    }
    else if (Number_Left < 0) {
        console.log(Number_Left)

        d = "didn't work";
        console.log(d)
        h = "didn't work";
        console.log(h)
        m = "didn't work";
        console.log(m)
        date = "didn't work";
        console.log(date)
        Value1 =+ add_to;
    }
}

async function begin(){
    console.log('calling');
    const result = await getTotal();
    console.log(Value1);
}

begin();
当(Number\u Left==0&&Value1==Number\u Returned)为True时:

当(数字_左<0)为真时:

重申一下,一旦最后一个条件变为真,我想将常量添加到let值
Value1
,再次开始
(Number\u Left>0)
(Number\u Left==0&&Value1==Number\u Returned)
条件检查


让我知道我是否可以更具体地说明我正在努力实现的目标。提前感谢。

当您要添加值并设置它时,语法是
+=
而不是
=+
,如果您更改以下内容,您可能会得到所需的结果:

Value1 =+ add_to;
(请注意):


为了完成我需要的代码,我必须重写它。这可能不是最好的编码,但它适用于我试图实现的目标:

const api_url = 'https://an-api-i-am-using-that-returns-Value1.com';

    async function getTotal(){
        resp = await fetch(api_url);
        Number_Returned = await resp.text();
        return Number_Returned
    }

    async function checkValue1(){
        Value1 = 100;
        const add_to = 10;
        cur = await getTotal();

        if (Value1>=cur){
            return cur
        }
        else if (Value1<cur){
            Value1 = Value1 + add_to
            return cur
        }
    }

    async function calculateTotal(){
        const theValue1 = await checkValue1();
        const numDifference = 2880;
        let numLeft = (Value1 - numDifference) - theValue1;
        let timeDelta = numLeft * 60.097;
        return timeDelta
    }

    async function calcDate(){
        let timeLeft = await calculateTotal();
        let d = parseInt(timeLeft / (3600 * 24));
        document.getElementById('days').innerHTML = d;
        nd = timeLeft % (24 * 3600);
        let h = parseInt(nd/3600);
        document.getElementById('hours').innerHTML = h;
        timeLeft %= 3600;
        let m = parseInt((timeLeft/60));
        document.getElementById('mins').innerHTML = m;
        const longEnUSFormatter = new Intl.DateTimeFormat('en-US', { dateStyle: 'full', timeStyle: 'long' });
        let date = new Date();
        date.setMinutes(date.getMinutes() + (d * 24 * 60) + (h * 60) + m);
        document.getElementById('date').innerHTML = longEnUSFormatter.format(date);
}

calcDate();
const-api\u-url=”https://an-api-i-am-using-that-returns-Value1.com';
异步函数getTotal(){
resp=等待获取(api_url);
返回的数字=等待响应文本();
返回号码
}
异步函数checkValue1(){
值1=100;
const add_to=10;
cur=等待getTotal();
如果(值1>=cur){
返回电流
}

else if(Value1感谢您的评论,这确实解决了将
add_添加到
Value1
的问题,但我希望“if”语句重新启动并再次开始检查前两个条件。现在它只是停留在最后一个“else if”上条件。感谢您的评论,这确实解决了将
add_添加到
Value1
的问题,但我希望“if”语句重新启动并开始检查前两个条件。现在它只是停留在最后一个“else if”上条件。更改值后可以再次调用该函数吗?在正常的for/while循环中,您将使用
continue
,但您处于for循环中。谢谢您的建议。我现在要尝试一下。
calling
-7
didn't work
didn't work
didn't work
didn't work
10
Value1 =+ add_to;
Value1 += add_to;
const api_url = 'https://an-api-i-am-using-that-returns-Value1.com';

    async function getTotal(){
        resp = await fetch(api_url);
        Number_Returned = await resp.text();
        return Number_Returned
    }

    async function checkValue1(){
        Value1 = 100;
        const add_to = 10;
        cur = await getTotal();

        if (Value1>=cur){
            return cur
        }
        else if (Value1<cur){
            Value1 = Value1 + add_to
            return cur
        }
    }

    async function calculateTotal(){
        const theValue1 = await checkValue1();
        const numDifference = 2880;
        let numLeft = (Value1 - numDifference) - theValue1;
        let timeDelta = numLeft * 60.097;
        return timeDelta
    }

    async function calcDate(){
        let timeLeft = await calculateTotal();
        let d = parseInt(timeLeft / (3600 * 24));
        document.getElementById('days').innerHTML = d;
        nd = timeLeft % (24 * 3600);
        let h = parseInt(nd/3600);
        document.getElementById('hours').innerHTML = h;
        timeLeft %= 3600;
        let m = parseInt((timeLeft/60));
        document.getElementById('mins').innerHTML = m;
        const longEnUSFormatter = new Intl.DateTimeFormat('en-US', { dateStyle: 'full', timeStyle: 'long' });
        let date = new Date();
        date.setMinutes(date.getMinutes() + (d * 24 * 60) + (h * 60) + m);
        document.getElementById('date').innerHTML = longEnUSFormatter.format(date);
}

calcDate();