如何使JavaScript-else语句不那么混乱?

如何使JavaScript-else语句不那么混乱?,javascript,Javascript,如果语句不那么凌乱,我如何才能使下面的语句不那么凌乱 var visas = ["Blue-Collar Worker", "Business", "Foreign Student", "Internship", "Investment", "Joining Foreign Family", "Joining Minors", "Joining Taiwanese Family", "Studying Mandarin Chinese", "Tourism", "Visa-Exempt Entr

如果语句不那么凌乱,我如何才能使下面的语句不那么凌乱

var visas = ["Blue-Collar Worker", "Business", "Foreign Student", "Internship", "Investment", "Joining Foreign Family", "Joining Minors", "Joining Taiwanese Family", "Studying Mandarin Chinese", "Tourism", "Visa-Exempt Entry", "Visiting Family", "Religious Work", "White-Collar Worker"];

var visaOld = $('#inputVisaOld').val(); var visaNew = $('#inputVisaNew').val();

if (visaOld === 'Studying Mandarin Chinese' && visaNew === 'Foreign Student') {
  return '<div class="alert alert-info">Documents for FR -> FS</div>'; 
} else if (visaOld === 'Visa-Exempt Entry' && visaNew === 'White-Collar Worker') {
  return '<div class="alert alert-info"><a class="alert-link">Visitor Visa for Employment Purpose</a></div>'; 
} else if (visaOld === 'Tourism' && visaNew === 'Joining Taiwanese Family') {
  return '<div class="alert alert-info">Documents for P -> TS</div>'; 
} else {
  return '<div class="alert alert-danger">Not allowed to change</div>'; 
}
var Visa=[“蓝领工人”、“商业”、“外国学生”、“实习”、“投资”、“加入外国家庭”、“加入未成年人”、“加入台湾家庭”、“学习普通话”、“旅游”、“免签证入境”、“探亲”、“宗教工作”、“白领工人”];
var visaOld=$('#inputVisaOld').val();var visaNew=$('#inputVisaNew').val();
如果(visaOld===‘学习汉语普通话’和visaNew===‘外国学生’){
返回“FR->FS文件”;
}否则,如果(visaOld===‘免签证入境’和visaNew===‘白领工人’){
返回“就业访客签证”;
}否则如果(visaOld==‘旅游’和visaNew==‘加入台湾家庭’){
返回“P->TS单据”;
}否则{
返回“不允许更改”;
}
我想把它转换成
switch
语句,但我需要在每个块中声明语句,我认为这在
switch
中是不可能的。

这有点整洁

var myString = '<div class="alert alert-info">';
var visaOld = $('#inputVisaOld').val(); var visaNew = $('#inputVisaNew').val();
if (visaOld === 'Studying Mandarin Chinese' && visaNew === 'Foreign Student') {
  myString += 'Documents for FR -> FS'; 
} else if (visaOld === 'Visa-Exempt Entry' && visaNew === 'White-Collar Worker') {
  myString += 'Visitor Visa for Employment Purpose'; 
} else if (visaOld === 'Tourism' && visaNew === 'Joining Taiwanese Family') {
  myString += 'Documents for P -> TS'; 
} else {
  myString += 'Not allowed to change'; 
}
myString += '</div>';
return myString;
var myString='';
var visaOld=$('#inputVisaOld').val();var visaNew=$('#inputVisaNew').val();
如果(visaOld===‘学习汉语普通话’和visaNew===‘外国学生’){
myString+=“FR的文档->FS”;
}否则,如果(visaOld===‘免签证入境’和visaNew===‘白领工人’){
myString+=“就业访客签证”;
}否则如果(visaOld==‘旅游’和visaNew==‘加入台湾家庭’){
myString+=“P->TS的文档”;
}否则{
myString+='不允许更改';
}
myString+='';
返回myString;
这有点整洁

var myString = '<div class="alert alert-info">';
var visaOld = $('#inputVisaOld').val(); var visaNew = $('#inputVisaNew').val();
if (visaOld === 'Studying Mandarin Chinese' && visaNew === 'Foreign Student') {
  myString += 'Documents for FR -> FS'; 
} else if (visaOld === 'Visa-Exempt Entry' && visaNew === 'White-Collar Worker') {
  myString += 'Visitor Visa for Employment Purpose'; 
} else if (visaOld === 'Tourism' && visaNew === 'Joining Taiwanese Family') {
  myString += 'Documents for P -> TS'; 
} else {
  myString += 'Not allowed to change'; 
}
myString += '</div>';
return myString;
var myString='';
var visaOld=$('#inputVisaOld').val();var visaNew=$('#inputVisaNew').val();
如果(visaOld===‘学习汉语普通话’和visaNew===‘外国学生’){
myString+=“FR的文档->FS”;
}否则,如果(visaOld===‘免签证入境’和visaNew===‘白领工人’){
myString+=“就业访客签证”;
}否则如果(visaOld==‘旅游’和visaNew==‘加入台湾家庭’){
myString+=“P->TS的文档”;
}否则{
myString+='不允许更改';
}
myString+='';
返回myString;
这有点整洁

var myString = '<div class="alert alert-info">';
var visaOld = $('#inputVisaOld').val(); var visaNew = $('#inputVisaNew').val();
if (visaOld === 'Studying Mandarin Chinese' && visaNew === 'Foreign Student') {
  myString += 'Documents for FR -> FS'; 
} else if (visaOld === 'Visa-Exempt Entry' && visaNew === 'White-Collar Worker') {
  myString += 'Visitor Visa for Employment Purpose'; 
} else if (visaOld === 'Tourism' && visaNew === 'Joining Taiwanese Family') {
  myString += 'Documents for P -> TS'; 
} else {
  myString += 'Not allowed to change'; 
}
myString += '</div>';
return myString;
var myString='';
var visaOld=$('#inputVisaOld').val();var visaNew=$('#inputVisaNew').val();
如果(visaOld===‘学习汉语普通话’和visaNew===‘外国学生’){
myString+=“FR的文档->FS”;
}否则,如果(visaOld===‘免签证入境’和visaNew===‘白领工人’){
myString+=“就业访客签证”;
}否则如果(visaOld==‘旅游’和visaNew==‘加入台湾家庭’){
myString+=“P->TS的文档”;
}否则{
myString+='不允许更改';
}
myString+='';
返回myString;
这有点整洁

var myString = '<div class="alert alert-info">';
var visaOld = $('#inputVisaOld').val(); var visaNew = $('#inputVisaNew').val();
if (visaOld === 'Studying Mandarin Chinese' && visaNew === 'Foreign Student') {
  myString += 'Documents for FR -> FS'; 
} else if (visaOld === 'Visa-Exempt Entry' && visaNew === 'White-Collar Worker') {
  myString += 'Visitor Visa for Employment Purpose'; 
} else if (visaOld === 'Tourism' && visaNew === 'Joining Taiwanese Family') {
  myString += 'Documents for P -> TS'; 
} else {
  myString += 'Not allowed to change'; 
}
myString += '</div>';
return myString;
var myString='';
var visaOld=$('#inputVisaOld').val();var visaNew=$('#inputVisaNew').val();
如果(visaOld===‘学习汉语普通话’和visaNew===‘外国学生’){
myString+=“FR的文档->FS”;
}否则,如果(visaOld===‘免签证入境’和visaNew===‘白领工人’){
myString+=“就业访客签证”;
}否则如果(visaOld==‘旅游’和visaNew==‘加入台湾家庭’){
myString+=“P->TS的文档”;
}否则{
myString+='不允许更改';
}
myString+='';
返回myString;

您可能更喜欢使用
开关(true)
构造:

switch (true) {
  case (visaOld === 'Studying Mandarin Chinese' && visaNew === 'Foreign Student'):
    return '<div class="alert alert-info">Documents for FR -> FS</div>';
    break;
  case (visaOld === 'Visa-Exempt Entry' && visaNew === 'White-Collar Worker'):
    return '<div class="alert alert-info"><a class="alert-link">Visitor Visa for Employment Purpose</a></div>';
    break;
  case (visaOld === 'Tourism' && visaNew === 'Joining Taiwanese Family'):
    return '<div class="alert alert-info">Documents for P -> TS</div>';
    break;
  default:
    return '<div class="alert alert-danger">Not allowed to change</div>';
    break;
}
开关(真){
案例(visaOld==‘学习汉语普通话’和visaNew==‘外国学生’):
返回“FR->FS文件”;
打破
案例(visaOld==‘免签证入境’和visaNew==‘白领工人’):
返回“就业访客签证”;
打破
案例(visaOld==‘旅游’和visaNew==‘加入台湾家庭’):
返回“P->TS单据”;
打破
违约:
返回“不允许更改”;
打破
}

您可能更喜欢使用
开关(true)
构造:

switch (true) {
  case (visaOld === 'Studying Mandarin Chinese' && visaNew === 'Foreign Student'):
    return '<div class="alert alert-info">Documents for FR -> FS</div>';
    break;
  case (visaOld === 'Visa-Exempt Entry' && visaNew === 'White-Collar Worker'):
    return '<div class="alert alert-info"><a class="alert-link">Visitor Visa for Employment Purpose</a></div>';
    break;
  case (visaOld === 'Tourism' && visaNew === 'Joining Taiwanese Family'):
    return '<div class="alert alert-info">Documents for P -> TS</div>';
    break;
  default:
    return '<div class="alert alert-danger">Not allowed to change</div>';
    break;
}
开关(真){
案例(visaOld==‘学习汉语普通话’和visaNew==‘外国学生’):
返回“FR->FS文件”;
打破
案例(visaOld==‘免签证入境’和visaNew==‘白领工人’):
返回“就业访客签证”;
打破
案例(visaOld==‘旅游’和visaNew==‘加入台湾家庭’):
返回“P->TS单据”;
打破
违约:
返回“不允许更改”;
打破
}

您可能更喜欢使用
开关(true)
构造:

switch (true) {
  case (visaOld === 'Studying Mandarin Chinese' && visaNew === 'Foreign Student'):
    return '<div class="alert alert-info">Documents for FR -> FS</div>';
    break;
  case (visaOld === 'Visa-Exempt Entry' && visaNew === 'White-Collar Worker'):
    return '<div class="alert alert-info"><a class="alert-link">Visitor Visa for Employment Purpose</a></div>';
    break;
  case (visaOld === 'Tourism' && visaNew === 'Joining Taiwanese Family'):
    return '<div class="alert alert-info">Documents for P -> TS</div>';
    break;
  default:
    return '<div class="alert alert-danger">Not allowed to change</div>';
    break;
}
开关(真){
案例(visaOld==‘学习汉语普通话’和visaNew==‘外国学生’):
返回“FR->FS文件”;
打破
案例(visaOld==‘免签证入境’和visaNew==‘白领工人’):
返回“就业访客签证”;
打破
案例(visaOld==‘旅游’和visaNew==‘加入台湾家庭’):
返回“P->TS单据”;
打破
违约:
返回“不允许更改”;
打破
}

您可能更喜欢使用
开关(true)
构造:

switch (true) {
  case (visaOld === 'Studying Mandarin Chinese' && visaNew === 'Foreign Student'):
    return '<div class="alert alert-info">Documents for FR -> FS</div>';
    break;
  case (visaOld === 'Visa-Exempt Entry' && visaNew === 'White-Collar Worker'):
    return '<div class="alert alert-info"><a class="alert-link">Visitor Visa for Employment Purpose</a></div>';
    break;
  case (visaOld === 'Tourism' && visaNew === 'Joining Taiwanese Family'):
    return '<div class="alert alert-info">Documents for P -> TS</div>';
    break;
  default:
    return '<div class="alert alert-danger">Not allowed to change</div>';
    break;
}
开关(真){
案例(visaOld==‘学习汉语普通话’和visaNew==‘外国学生’):
返回“FR->FS文件”;
打破
案例(visaOld==‘免签证入境’和visaNew==‘白领工人’):
返回“就业访客签证”;
打破
案例(visaOld==‘旅游’和visaNew==‘加入台湾家庭’):
返回“P->TS单据”;
打破
违约:
返回“不允许更改”;
打破
}

另一种方法是使用javascript的对象查找。并非适用于所有情况,但如果需要在大型表中快速查找,此方法将比if/else if块或开关的长结构更快,因为它是哈希表查找

// setup a table
var changes = {};
changes[['Studying Mandarin Chinese', 'Foreign Student']] =
    '<div class="alert alert-info">Documents for FR -> FS</div>';
changes[['Visa-Exempt Entry', 'White-Collar Worker']] =
    '<div class="alert alert-info"><a class="alert-link">Visitor Visa for Employment Purpose</a></div>';
changes[['Tourism', 'Joining Taiwanese Family']] =
    '<div class="alert alert-info">Documents for P -> TS</div>';

// do the lookup
return changes[[visaOld, visaNew]] ||
    '<div class="alert alert-danger">Not allowed to change</div>';
//设置一个表
var变化={};
变化,变化【例】学习需要