【问题标题】:Replace string with a specified string用指定的字符串替换字符串
【发布时间】:2021-06-21 23:16:13
【问题描述】:

我正在尝试创建一个条件,使我只能显示以下 5 个订单标签中的一个:

  1. 发票
  2. 已开票
  3. 打包
  4. 在途
  5. 已交付

条件如下:

  • 遍历所有标签。
  • 如果添加了 Invoiced,则 For Invoice 将被替换。
  • 如果添加了 Packed,则会替换 Invoiced。
  • 如果添加了 In-Transit,则会替换 Packed。
  • 如果添加了 Delivered,则会替换 In-Transit。
  • 如果标签不是上面提到的任何一个,显示它。

如果'1。添加了发票',如果我添加标签'2。 Invoiced',只会显示后者。我在如何解决这个问题上遇到了困难,因为还有其他标签需要显示。就像我添加 DenimTAGS 一样,它需要显示。我只需要显示上面五个标签中的一个。这有点像等级制度。

所以如果我有一个这样的数组:

['DenimTags', '1. For Invoice', '2. Invoiced', '3. Packed']

应该这样显示:

['DenimTags', '3. Packed'] 

【问题讨论】:

    标签: javascript loops for-loop conditional-statements hierarchy


    【解决方案1】:
    const tags = ['DenimTags', '1. For Invoice', '2. Invoiced', '3. Packed'];
    const result = [];
    let highestStatus = 0;
    let highestStatusName;
        
    tags.forEach(tag => { 
      if(isNaN(parseInt(tag[0]))) {
          result.push(tag);
      } else if (parseInt(tag[0]) > highestStatus) {
            highestStatusName = tag;
            highestStatus = tag[0];
      }
    })  
    result.push(highestStatusName);
    console.log(result);
    

    只要标签不是以数字开头的 5 个标签之一,它就会被推入结果数组。然后,编号最大的标签也被推入结果数组。 这可能无法处理您可能遇到的任何边缘情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-19
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      • 1970-01-01
      • 2013-07-09
      • 1970-01-01
      相关资源
      最近更新 更多