我正在尝试优化Pug/Node.js/Express中的循环语句,如下所示。简单地说,我从数据库读取状态数据(“portMap2中的每个端口映射”),然后检查st1、st2、st3、...、st12的值,以选择将显示在表的单元格中的适当标记。问题是表有7组状态数据,每组有12个单元格。我如何优化这个循环?还有比if-else_if-else语句更好的方法吗?
.row.row-cols-12
each portmap in portMap2
.col
if (portmap.st1 == 0)
span.badge.badge-pill.badge-success Good
else if (portmap.st1 == 1)
span.badge.badge-pill.badge-danger Bad
else if (portmap.st1 == 2)
span.badge.badge-pill.badge-secondary Excluded
else
span.badge.badge-pill.badge-light Disconnected
.col
if (portmap.st2 == 0)
span.badge.badge-pill.badge-success Good
else if (portmap.st2 == 1)
span.badge.badge-pill.badge-danger Bad
else if (portmap.st2 == 2)
span.badge.badge-pill.badge-secondary Excluded
else
span.badge.badge-pill.badge-light Disconnected
.col
if (portmap.st3 == 0)
span.badge.badge-pill.badge-success Good
else if (portmap.st3 == 1)
span.badge.badge-pill.badge-danger Bad
else if (portmap.st3 == 2)
span.badge.badge-pill.badge-secondary Excluded
else
span.badge.badge-pill.badge-light Disconnected
.col
if (portmap.st4 == 0)
span.badge.badge-pill.badge-success Good
else if (portmap.st4 == 1)
span.badge.badge-pill.badge-danger Bad
else if (portmap.st4 == 2)
span.badge.badge-pill.badge-secondary Excluded
else
span.badge.badge-pill.badge-light Disconnected
.col
if (portmap.st5 == 0)
span.badge.badge-pill.badge-success Good
else if (portmap.st5 == 1)
span.badge.badge-pill.badge-danger Bad
else if (portmap.st5 == 2)
span.badge.badge-pill.badge-secondary Excluded
else
span.badge.badge-pill.badge-light Disconnected
.col
if (portmap.st6 == 0)
span.badge.badge-pill.badge-success Good
else if (portmap.st6 == 1)
span.badge.badge-pill.badge-danger Bad
else if (portmap.st6 == 2)
span.badge.badge-pill.badge-secondary Excluded
else
span.badge.badge-pill.badge-light Disconnected
.col
if (portmap.st7 == 0)
span.badge.badge-pill.badge-success Good
else if (portmap.st7 == 1)
span.badge.badge-pill.badge-danger Bad
else if (portmap.st7 == 2)
span.badge.badge-pill.badge-secondary Excluded
else
span.badge.badge-pill.badge-light Disconnected
.col
if (portmap.st8 == 0)
span.badge.badge-pill.badge-success Good
else if (portmap.st8 == 1)
span.badge.badge-pill.badge-danger Bad
else if (portmap.st8 == 2)
span.badge.badge-pill.badge-secondary Excluded
else
span.badge.badge-pill.badge-light Disconnected
.col
if (portmap.st9 == 0)
span.badge.badge-pill.badge-success Good
else if (portmap.st9 == 1)
span.badge.badge-pill.badge-danger Bad
else if (portmap.st9 == 2)
span.badge.badge-pill.badge-secondary Excluded
else
span.badge.badge-pill.badge-light Disconnected
.col
if (portmap.st10 == 0)
span.badge.badge-pill.badge-success Good
else if (portmap.st10 == 1)
span.badge.badge-pill.badge-danger Bad
else if (portmap.st10 == 2)
span.badge.badge-pill.badge-secondary Excluded
else
span.badge.badge-pill.badge-light Disconnected
.col
if (portmap.st11 == 0)
span.badge.badge-pill.badge-success Good
else if (portmap.st11 == 1)
span.badge.badge-pill.badge-danger Bad
else if (portmap.st11 == 2)
span.badge.badge-pill.badge-secondary Excluded
else
span.badge.badge-pill.badge-light Disconnected
.col
if (portmap.st12 == 0)
span.badge.badge-pill.badge-success Good
else if (portmap.st12 == 1)
span.badge.badge-pill.badge-danger Bad
else if (portmap.st12 == 2)
span.badge.badge-pill.badge-secondary Excluded
else
span.badge.badge-pill.badge-light Disconnected发布于 2021-10-27 16:01:25
使用for循环和括号语法:
.row.row-cols-12
each portmap in portMap2
- for (let i = 0; i < 12; i++)
- let st = portmap['st' + (i + 1)]
.col
if (st === 0)
span.badge.badge-pill.badge-success Good
else if (st === 1)
span.badge.badge-pill.badge-danger Bad
else if (st === 2)
span.badge.badge-pill.badge-secondary Excluded
else
span.badge.badge-pill.badge-light Disconnected https://stackoverflow.com/questions/69735311
复制相似问题