【发布时间】:2018-03-29 02:14:04
【问题描述】:
我这里有很多问题,所以让我先解释一下。 我想检查用户是否对对象中的每个项目都有足够的积分,然后检查用户是否已达到该项目的最高级别,并相应地在 HTML 中写入信息。为简化起见,代码如下所示:
var player = {
points: 0,
lv: { item1: 1, item2: 3, ... , item9: 4 },
maxLv: { item1: 10, item2: 15, ... , item9: 40 }
}
var names = [
"item1", "item2", ... , "item9"
]
现在在删除点和设置掌握的函数中是我要进行此检查的函数,我想有一个 for 循环,如下所示:
for(i = 0; i < 9; i ++) {
if(player.points < 0 || player.lv[names[i]] ...
让我停在这里。 player.lv[names[i]] 不起作用。但是[names[i]]的控制台日志返回item1,item2,就好了,所以player.lv[names[3]]应该返回player.lv.item3。由于某种原因,它没有。
for(i = 0; i < 9; i ++) {
if(player.points < 0 || player.lv[names[i]] < player.maxLv[names[i]]) {
document.getElementById(names[i] + "click").innerHTML = "Not enough points";
}
else(player.Lv[names[i]] >= player.maxLv[names[i]]) {
document.getElementById(names[i] + "click").innerHTML = "Maxed";
}
}
为什么我的方法不起作用?一段时间以来,我一直在为此头疼…… 谢谢!
【问题讨论】:
-
如果您尝试
player.lv[i]会怎样?您可以通过索引号从数组中获取项目。 -
如何在需求中定义足够多的点?
-
有一个包含最大级别的对象。 player.maxLv
-
Caaris 但我需要获得 player.lv.name1、player.lv.name2、player.lv[i] 会返回 player.lv.1 等...
-
else(player.Lv[names[i]] >= player.maxLv[names[i]])应该抛出语法错误
标签: javascript html arrays object for-loop