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

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

本文关键字:对象 属性 数字 一个      更新时间:2023-09-26

我有一个像这样的对象:

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

我有一个函数,将1加到won:

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

我在if/else语句中调用这个函数,像这样:

plus1();

但是它不起作用。有人知道吗?

可能是x++返回x而不是x+1。您正在寻找

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

看看你的代码,我真的看不出你为什么要返回你的结果。

我将把这个函数重写为

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

当涉及到更新时,我在你的代码中看不到任何你实际更新html的地方。在运行了+ 1()之后。如果我在控制台中运行Console .log(statistics),我可以看到该统计数据。每当我赢了,赢的就会增加。

正如在上面的评论中已经提到的,如果在运行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;是你需要的解决方案。