javascript - Javascript 检查数组中的每个元素
问题描述
我有这个代码:
var newStatus = (status, subStatus) => {
if(status === 'CREATED' &&
(subStatus === 'subStatus1' || 'subStatus2' || 'subStatus3')){
return 'CONFIRMED';
} else if(status === 'CANCELLED' &&
(subStatus === 'subStatus4' || 'subStatus5' || 'subStatus6')){
return 'REMOVED';
} else if(status === 'REVIEW' &&
(subStatus === 'subStatus7' || 'subStatus8' || 'subStatus9')){
return 'CHECKED';
}
}
<div>newStatus('CREATED', 'subStatus2')</div>
在这种情况下,div 必须以“CONFIRMED”值呈现。我相信这个逻辑有一个错误,我需要 'subStatus' 作为一个数组并以某种方式检查每个元素,但我该如何实现呢?
有人可以帮助我解决如何正确实现此逻辑的解决方案吗?
解决方案
您可以创建子状态的映射,然后对于唯一的子状态,检查它是否也具有预期状态,如果是,则返回新状态:
subStatuses = {
"subStatus1": { "expectedStatus": "CREATED", "newStatus": "CONFIRMED" },
"subStatus2": { "expectedStatus": "CREATED", "newStatus": "CONFIRMED" },
"subStatus3": { "expectedStatus": "CREATED", "newStatus": "CONFIRMED" },
"subStatus4": { "expectedStatus": "CANCELLED", "newStatus": "REMOVED" },
"subStatus5": { "expectedStatus": "CANCELLED", "newStatus": "REMOVED" },
"subStatus6": { "expectedStatus": "CANCELLED", "newStatus": "REMOVED" },
"subStatus7": { "expectedStatus": "REVIEW", "newStatus": "CHECKED" },
"subStatus8": { "expectedStatus": "REVIEW", "newStatus": "CHECKED" },
"subStatus9": { "expectedStatus": "REVIEW", "newStatus": "CHECKED" },
}
function newStatus( status, subStatus )
{
if ( subStatus in subStatuses && status === subStatuses[subStatus].expectedStatus )
{
return subStatuses[subStatus].newStatus;
}
return undefined;
}
element = document.getElementById( "to_check" );
element.innerText = newStatus(
element.getAttribute( "status" ),
element.getAttribute( "substatus" )
);
<div id="to_check" status="CREATED" substatus="subStatus2" />
推荐阅读
- fish - 鱼壳:“错误:无法打开通用变量文件'/':权限被拒绝”
- javascript - i + 1 值后的 Javascript 切片数组
- javascript - 我得到 = TypeError:无法在“节点”上执行“removeChild”:参数 1 不是“节点”类型
- java - 为什么 th:field 在 Spring Boot 中会导致错误以及如何解决?
- javascript - 如何在打字稿中合并两个内置的记录类型
- jquery - 我不能在 svg 上使用 jQuery 切换
- swiftui - SwiftUI 条件修饰符添加
- node.js - 需要有关 Heroku 部署错误的建议
- node.js - 使用节点 js 进行 Mongo db 复制
- python - kivy --version kivy' 不是内部或外部命令、可运行程序或批处理文件