For / In Loop正在吐出随机数,而不是我所假设的

时间:2016-08-06 04:54:54

标签: javascript minecraft

我是编码的新手,这确实让我质疑......

我会发布一些代码,包括我使用的枚举以及我认为它应该说的内容。 我的枚举:

var schedule = {
    CommuteWork: {
            time: [1],
            action: function() {npc.say("Hello!");}    
        },
    Work: {
            time: [2,3,4,5,6],
            action: function() {}
        },
    CommuteHome: {
            time: [7],
            action: function() {}
        },
    Sleep: {
            time: [8,9,10],
            action: function() {}
        },

    Leisure: {
            time: [5,6,7],
            activities: {
                bar: function() {

                }
            }
        }
}

由以下代码调用的代码:

for (act in schedule) {
   npc.say(act);
   for (prop in act) {
       npc.say(prop);
   }
}

所以,随着npc在日程安排中说出行为,他会吐出:" CommuteWork" "工作"等。 我假设这样做是:"时间" "动作&#34 ;. 但由于某种原因,它正在给出:"休闲" " 0" " 1" " 2"等等达6个。 所有数字都不同。例如,当它表示睡眠时,数字为0到4.这些数字与prop.time不匹配。他们不会匹配我写过的任何代码。我必须在某个地方犯错,但我要么太累了,要么不太了解它。如果有人知道,我会喜欢这方面的帮助和解释。

请注意那些了解自定义npcs的人:是的,var计划是在init中声明的,我将它保存在npc.setTempData(" schedule",schedule)下,并在更新时使用&调用它#39; schedule = npc.getTempData(" schedule")'。我很乐意回答相关问题,但我认为它设置正确。

1 个答案:

答案 0 :(得分:0)

正如Jaromanda X在评论中所指出的,正在发生的事情是它正在迭代行为的字符串并给出数字。我需要使用for (prop in schedule[act])而不是for (prop in act)