gpt4 book ai didi

javascript - 比较点的总和与理想的点的总和

转载 作者:行者123 更新时间:2023-11-30 12:59:32 24 4
gpt4 key购买 nike

我正在尝试生成一个高尔夫计分系统。在这个系统中,我想比较用户拥有的点数与理想的点数总和。

每个洞的理想积分总和为 2。因此,当第一个洞的用户获得 2 分时,返回应为 0。如果下一个洞的用户获得 3 分,则返回应为 1。如果他只得到 1 分,应该是 -1。

我怎么不能让它工作!?!?

这是我的演示:

var myObject = {
0: 0,
1: 0,
2: 0,
3: 0,
4: 0,
5: 0,
6: 0,
7: 0,
8: 0
};

$('.clickme').click(function () {

var thisNumber = $(this).attr("data-id");
var thisNumber = thisNumber.split('-');
var n = thisNumber[0];
var r = thisNumber[1];

myObject[n] = r;

var totalpoints = 0;

for (var l = 0; l < n + 1; l++) {
totalpoints += myObject[l];
}

//alert("Totalpoints: "+totalpoints);

// ADDING POINTS FOR EACH HOLE TO GET THE CURRENT IDEAL POINT //
var x = n;
var idealpoints = (x * 2) + 2;

// COMPARING IDEAL POINTS WITH HE PLAYERS ACTUAL POINTS //
var escore = totalpoints - idealpoints;

$('#tpoints').html(escore);
$('#theObject').html(JSON.stringify(myObject, null, 4));

});

我的麻烦似乎来自于此:

for (var l = 0; l < n + 1; l++) {
totalpoints += myObject[l];
}

我想我已经尝试了所有方法,但无法解决这个问题。

这里有一个 jsfiddle 示例:http://jsfiddle.net/jmansa/AtkVp/

希望得到帮助并提前致谢:-)

最佳答案

您的 for 循环不会对值求和,因为这些值已使用 split() 方法转换为字符串。

我无法准确理解脚本应该做什么,但是如果您更改

var r = thisNumber[1];

var r = parseInt(thisNumber[1]);

r 将是一个整数,它将被添加到 totalpoints 而不是作为字符串连接到它

此外,当对象的值尚未定义时,您会得到未定义的值。在你的 for 循环中,你应该这样做:

if(myObject[l]) {
totalpoints += myObject[l];
}

我已将我的更改应用到您的 fiddle

关于javascript - 比较点的总和与理想的点的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17752853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com