在 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”
下面,我试图在 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”