I'm trying to optimize the looping statements in Pug/Node.js/Express, shown below. Simply, I read status data from database ("each portmap in portMap2"), and then check the value of st1, st2, st3, ... ,st12 to select a proper badge which will be displayed in a cell of table. Problem is the table has 7 sets of status data, each set has 12 cells. How can I optimize this looping ? Is there any better way than if-else_if-else statement?
.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