繁体   English   中英

如何将数字加到对象的属性中?

[英]How do I add up a number to a properties in my object?

我有一个这样的对象:

var statistics = {
    won: 0,
    tie: 0,
    lost: 0
};

我有一个函数,将won 1:

var plus1 = function() {
    return statistics.won++;
}

我在if / else语句中这样调用该函数:

plus1();

但这是行不通的。 有人有主意吗?

x ++可能返回x而不是x + 1。 你在找

var plus1 = function() {
    return ++statistics.won;
}

查看您的代码,我真的看不出您为什么要返回结果的任何原因。

我将函数重写为

function plus1() {
  statistics.won++;
}

当涉及到更新时,我看不到您的代码中实际更新过html的任何地方。 运行plus1()之后。 如果我在控制台中运行console.log(statistics),那么我每次获胜时都会看到statistic.won上升。

正如上面的注释中已经提到的,如果在运行plus1()之后运行wins(),那么它将全部正常工作。

这是由于JavaScript中的前/后递增方式:

var one = 1;
var two = 1;

// increment `one` FIRST and THEN assign it to `three`.
var three = ++one; 

// assign `two` to `four`, THEN increment it
var four = two++;

因此,在您的代码中,您首先要将statistics.won的值分配给return值,然后再将其递增。 您可以在这里看到它们工作方式的不同

因此,正如我在评论中提到的, return ++statistics.won; 是您需要的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM