javascript - 用指定的字符串替换字符串
问题描述
我正在尝试创建一个条件,我只能显示以下 5 个订单标签之一:
- 对于发票
- 已开票
- 包装好的
- 在途中
- 发表
这是条件:
- 循环遍历所有标签。
- 如果添加了 Invoiced,则 For Invoice 将被替换。
- 如果添加了 Packed,则会替换 Invoiced。
- 如果添加了 In-Transit,则会替换 Packed。
- 如果添加了已交付,则在途将被替换。
- 如果标签不是上面提到的任何标签,请显示它。
如果'1。添加了发票',如果我添加标签'2。Invoiced',只会显示后者。我在如何解决这个问题上遇到了困难,因为还有其他标签需要显示。就像我添加 DenimTAGS 一样,它需要显示。我只需要显示上面五个标签中的一个。这有点像等级制度。
所以如果我有一个这样的数组:
['DenimTags', '1. For Invoice', '2. Invoiced', '3. Packed']
它应该显示为:
['DenimTags', '3. Packed']
解决方案
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 个标签之一,它就会被推入结果数组。然后,编号最大的标签也被推入结果数组。这可能无法处理您可能遇到的任何边缘情况。
推荐阅读
- jquery - RShiny:为 tabsetPanel 中具有随机生成的 ID 的 UI 项检索 jsQuery 选择器
- android - 如何在 pexels API 中的 Flutter 图像中设置壁纸
- java - 为什么我使用 setLayoutParams 时 FrameLayout 不显示?
- kotlin - 替换非空断言运算符“!!” 执行数学表达式
- java - 在按钮单击中显示加载 GIF,并在执行操作后再次隐藏它
- java - Javadoc 不会在 IntelliJ IDEA 中自动生成
- c# - 为什么 adapter.Fill 突然停止在 C# 中填充我的数据表?
- ubuntu - Lubuntu 18.04 中的自动启动应用程序
- visual-studio - Visual Studio 2019“禁用项目代码”不再可见
- python - TypeError:参数必须是矩形样式对象