首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pug/Node.js中循环的优化

Pug/Node.js中循环的优化
EN

Stack Overflow用户
提问于 2021-10-27 08:32:30
回答 1查看 36关注 0票数 2

我正在尝试优化Pug/Node.js/Express中的循环语句,如下所示。简单地说,我从数据库读取状态数据(“portMap2中的每个端口映射”),然后检查st1、st2、st3、...、st12的值,以选择将显示在表的单元格中的适当标记。问题是表有7组状态数据,每组有12个单元格。我如何优化这个循环?还有比if-else_if-else语句更好的方法吗?

代码语言:javascript
复制
    .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
EN

回答 1

Stack Overflow用户

发布于 2021-10-27 16:01:25

使用for循环和括号语法:

代码语言:javascript
复制
.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 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69735311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档