在 Pug 中,如何在创建它的每个循环之外使用变量(设置为全局使用)?

In Pug, how to use a variable outside (set for global use) the each loop it is created in?

下面,我试图在 persons 的每个循环中获取 personRef 变量(本地设置范围)。这样,在下一行 PersObj 中,我需要它作为每个对象循环的一部分,可以使用上方循环中的 personRef 变量。基本上,我需要在循环外全局设置循环中的局部作用域。

each object in objects
   - var objNum = objects.indexOf(vehicle)+1
   - var personRef=person.object_ref
   each person in persons
     - var personNum = persons.indexOf(driver)+1
     if (some condition) && (object.person_ref == objNum)
       - var personRef=object.person_ref
       - break
     else if (condition)
       - var personRef= personNum
     else if (condition)
       - continue
   PersObj(id = "O"+objNum, PersonRef = "P"+personRef)

很难理解您想实现的确切行为,但我会尝试。 “- var personRef = something”定义了一个变量。您在代码中只需要一次。如果你在循环外定义它,你也可以在循环内使用它。如果您在循环中再次使用“- var personRef = something”,则您可以使用只能在循环范围内使用的变量“覆盖”它。你总是可以像这样重新分配一个变量值:“personRef = somethingElse”而不使用“-var”。

所以它应该看起来像这样:

each object in objects
 - var objNum = objects.indexOf(vehicle)+1
 - var personRef=person.object_ref // define the variable here
   each person in persons
     - var personNum = persons.indexOf(driver)+1
     if (some condition) && (object.person_ref == objNum)
       - personRef=object.person_ref // here you dont need var, because you only reassign a value
       - break
     else if (condition)
       - personRef= personNum // here as well
     else if (condition)
       - continue
   PersObj(id = "O"+objNum, PersonRef = "P"+personRef)

除此之外,我真的不知道代码应该做什么,请您详细说明该代码应该做什么。还请解释: 什么是“objects” 什么是“人” 什么是“车辆” 什么是“driver”