首页 > 解决方案 > 用指定的字符串替换字符串

问题描述

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

  1. 对于发票
  2. 已开票
  3. 包装好的
  4. 在途中
  5. 发表

这是条件:

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

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

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

它应该显示为:

['DenimTags', '3. Packed'] 

标签: javascriptloopsfor-loopconditional-statementshierarchy

解决方案


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 个标签之一,它就会被推入结果数组。然后,编号最大的标签也被推入结果数组。这可能无法处理您可能遇到的任何边缘情况。


推荐阅读