繁体   English   中英

我可以把它变成 1 个 switch case 而不是许多 if else 语句吗

[英]can i make this into 1 switch case instead of many if else statements

const ticket = {
                   movie : document.getElementById("movie").value,
                   amount : document.getElementById("amount").value,
               };

这是我的对象,我想验证输入。 但我不确定如何将 if-else 语句更改为一个 switch case,因为它有不同的语句。

PS:出于学习目的,我需要使用 javaScript 而不是 jQuery。

if(ticket.movie ===""){
    document.getElementById("warningMovie").innerHTML = "need to choose a movie"
}else{
    document.getElementById("warningMovie").innerHTML = "";
}

if(ticket.amount === ""){
    document.getElementById("warningAmount").innerHTML = "need to choose amount"
}else{
     document.getElementById("warningAmount").innerHTML = "";
}

在这种情况下,我会使用三元运算符。 例如。:

document.getElementById("warningMovie")
 .innerHTML = ticket.movie ? "" : "need to choose a movie"

像这样的东西?

我使用Object.entries条件运算符(三元)两次:)

并将对象的键添加到跨度的 ID - 我可以使用 warningAmount 但随后我必须将键大写

请注意,对象可能是通过循环输入元素创建的

如果你不喜欢,也忽略("aeiou".indexOf(item[0].toLowerCase())>=0?"n ":" ")

 const ticket = { movie: "", amount: 0, snack: "Chips", }; for (let [key, value] of Object.entries(ticket)) { document.getElementById("warning_" + key).innerHTML = value ? "" : "need to choose a"+ ("aeiou".indexOf(key[0].toLowerCase())>=0?"n ":" ") + key }
 <span id="warning_movie"></span><br/> <span id="warning_amount"></span><br/> <span id="warning_snack"></span><br/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM