微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数组内对象中的整数不减少

如何解决数组内对象中的整数不减少

我制作了这段代码,当运行时向 mzone 添加一个值,最大为 3,五秒后应该减少添加的值,但最后一部分不起作用。我还在学习,所以我不知道可能有什么问题。

    clubsList[playerCountry].mzone = (clubsList[playerCountry].mzone + 1) || 1; //This works perfectly. It adds 1 to the mzone everytime it's run.
    console.log(clubsList[playerCountry].mzone)
    setTimeout(function(){ (clubsList[playerCountry].mzone - 1 ) },5000); //This isn't working
    setTimeout(function(){ (console.log(clubsList[playerCountry].mzone)) },6000);

完成的代码

clubsList = []

onNet('verifyMeetingzone',(playerCountry) => {
    if (!clubsList[playerCountry]) {
        clubsList[playerCountry] = {}
        clubsList[playerCountry].mzone = 0
    }
    // HERE
    if (clubsList[playerCountry].mzone <= 2) {
        console.log("Mzone Criado")  
        clubsList[playerCountry].mzone = (clubsList[playerCountry].mzone + 1) || 1; 
        console.log(clubsList[playerCountry].mzone)
        setTimeout(function(){ (clubsList[playerCountry].mzone - 1 ) },5000);
        setTimeout(function(){ (console.log(clubsList[playerCountry].mzone)) },6000);
    }
    else {
        console.log("Ja existe")  
    }
})

解决方法

我应该改变这个:

    setTimeout(function(){ (clubsList[playerCountry].mzone - 1 ) },5000);

为此:

    setTimeout(function(){ (clubsList[playerCountry].mzone = clubsList[playerCountry].mzone - 1) },5000);
,

我认为您没有将更改后的值重新分配给对象,这就是对象没有接收减量的原因:

 setTimeout(function(){ clubsList[playerCountry].mzone = clubsList[playerCountry].mzone - 1  },5000);

试试这个,应该可以解决问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。