Javascript 我可以在代码中使用shortand if-else语句吗

Javascript 我可以在代码中使用shortand if-else语句吗,javascript,jquery,Javascript,Jquery,我有一个关于shortand if else语句的问题。我只想学习如何缩短我的js if else语句。有人可以使用我的代码在示例中帮助我吗 如果单击按钮rel=“Like”或其他文本,我将检查代码,然后使用if-else语句执行操作 if (REL === 'Like') { if (!$('#pli' + dataid).length) { $('#ttl' + dataid).prepend('<div class="pli" id="pli' + dataid +

我有一个关于shortand if else语句的问题。我只想学习如何缩短我的js if else语句。有人可以使用我的代码在示例中帮助我吗

如果单击按钮rel=“Like”或其他文本,我将检查代码,然后使用if-else语句执行操作

if (REL === 'Like') {
   if (!$('#pli' + dataid).length) {
      $('#ttl' + dataid).prepend('<div class="pli" id="pli' + dataid + '"></div>');
   }
} else if (REL === 'Love') {
   if (!$('#plo' + dataid).length) {
      $('#ttl' + dataid).prepend('<div class="plo" id="plo' + dataid + '"></div>');
   }
}else if (REL === 'Unbelievable') {
   if (!$('#phi' + dataid).length) {
      $('#ttl' + dataid).prepend('<div class="phi" id="phi' + dataid + '"></div>');
   }
}else if (REL === 'Spectacular') {
   if (!$('#pha' + dataid).length) {
      $('#ttl' + dataid).prepend('<div class="pha" id="pha' + dataid + '"></div>');
   }
}else if (REL === 'Emotional') {
   if (!$('#pwo' + dataid).length) {
      $('#ttl' + dataid).prepend('<div class="pwo" id="pwo' + dataid + '"></div>');
   }
}

if (REL === 'NotLike') {
   setTimeout(function() {
      if ($("#sum" + dataid).text() == 0) {
         $("#pli" + dataid).remove();
      }
   }, 200);
}else if (REL === 'NotLove') {
   setTimeout(function() {
      if ($("#sum" + dataid).text() == 0) {
         $("#plo" + dataid).remove();
      }
   }, 200);
}else if (REL === 'NotUnbelievable') {
   setTimeout(function() {
      if ($("#sum" + dataid).text() == 0) {
         $("#phi" + dataid).remove();
      }
   }, 200);
}else if (REL === 'NotSpectacular') {
   setTimeout(function() {
      if ($("#sum" + dataid).text() == 0) {
         $("#pha" + dataid).remove();
      }
   }, 200);
}else if (REL === 'NotEmotional') {
   setTimeout(function() {
      if ($("#sum" + dataid).text() == 0) {
         $("#pwo" + dataid).remove();
      }
   }, 200);
}
if(REL=='Like'){
如果(!$('#pli'+dataid).length){
$('#ttl'+dataid).prepend('');
}
}否则如果(REL===‘爱’){
if(!$('#plo'+dataid).length){
$('#ttl'+dataid).prepend('');
}
}否则如果(REL===‘难以置信’){
if(!$('#phi'+dataid).length){
$('#ttl'+dataid).prepend('');
}
}否则如果(REL==‘壮观’){
如果(!$('#pha'+dataid).length){
$('#ttl'+dataid).prepend('');
}
}否则如果(REL==‘情绪化’){
if(!$('#pwo'+dataid).length){
$('#ttl'+dataid).prepend('');
}
}
如果(REL==='NotLike'){
setTimeout(函数(){
if($(“#sum”+dataid).text()=0){
$(“#pli”+dataid).remove();
}
}, 200);
}否则如果(REL==='NotLove'){
setTimeout(函数(){
if($(“#sum”+dataid).text()=0){
$(“#plo”+dataid).remove();
}
}, 200);
}否则如果(REL==‘不难以置信’){
setTimeout(函数(){
if($(“#sum”+dataid).text()=0){
$(“#phi”+dataid).remove();
}
}, 200);
}否则如果(REL==='notspecific'){
setTimeout(函数(){
if($(“#sum”+dataid).text()=0){
$(“#pha”+dataid).remove();
}
}, 200);
}else if(REL=='NotEmotional'){
setTimeout(函数(){
if($(“#sum”+dataid).text()=0){
$(“#pwo”+dataid).remove();
}
}, 200);
}

使用以下词典如何:

var dict = {'Like': 'pli','Love': 'plo','Unbelievable':'phi','Emotional':'pwo'};

if (dict[REL]) {
  if (!$('#'+dict[REL] + dataid).length) {
    $('#ttl' + dataid).prepend('<div class="' + dict[REL] + '" id="'+ dict[REL] + dataid + '"></div>');
  }
} 
var dict={'Like':'pli','Love':'plo','investible':'phi','Emotional':'pwo'};
if(dict[REL]){
if(!$('#'+dict[REL]+dataid).length){
$('#ttl'+dataid).prepend('');
}
} 

它可以帮助您减小两个ifs的大小

我认为
对象
开关
if/else
更具可读性

var map = {
  Like: 'pli',
  Love: 'plo',
  Unbelievable: 'phi',
  Spectacular: 'pha',
  Emotional: 'pwo'
};

var className = map[REL];

if (className) {
  if (!$('#' + className + dataid).length) {
     $('#ttl' + dataid).prepend('<div class="' + className + '" ' +
                                     'id="' + className + dataid + '"></div>');
  }
}
var映射={
比如‘pli’,
爱:“巴解组织”,
难以置信:“phi”,
壮观的‘pha’,
情绪化:“pwo”
};
var className=map[REL];
if(类名){
if(!$('#'+className+dataid).length){
$('#ttl'+dataid).prepend('');
}
}

正如其他人所说,您需要一个switch case语句:

switch (REL){
    case 'Like':
        if (!$('#pli' + dataid).length) {
            $('#ttl' + dataid).prepend('<div class="pli" id="pli' + dataid + '"></div>');
        break;
    case 'Love':
        if (!$('#plo' + dataid).length) {
            $('#ttl' + dataid).prepend('<div class="plo" id="plo' + dataid + '"></div>');
        break;
    case 'Unbelievable':
        if (!$('#phi' + dataid).length) {
            $('#ttl' + dataid).prepend('<div class="phi" id="phi' + dataid + '"></div>');
        break;
    case 'Spectacular':
        if (!$('#pha' + dataid).length) {
            $('#ttl' + dataid).prepend('<div class="pha" id="pha' + dataid + '"></div>');
        break;
    case 'Emotional':
        if (!$('#pwo' + dataid).length) {
            $('#ttl' + dataid).prepend('<div class="pwo" id="pwo' + dataid + '"></div>');
        break;
    case 'NotLike':
        setTimeout(function() {
            if ($("#sum" + dataid).text() == 0) {
                $("#pli" + dataid).remove();
            }
        }, 200);
        break;
    case 'NotLove':
        setTimeout(function() {
            if ($("#sum" + dataid).text() == 0) {
                $("#plo" + dataid).remove();
            }
        }, 200);
        break;
    case 'NotUnbelievable':
        setTimeout(function() {
            if ($("#sum" + dataid).text() == 0) {
                $("#phi" + dataid).remove();
            }
        }, 200);
        break;
    case 'NotSpectacular':
        setTimeout(function() {
            if ($("#sum" + dataid).text() == 0) {
                $("#pha" + dataid).remove();
            }
        }, 200);
        break;
    case 'NotEmotional':
        setTimeout(function() {
            if ($("#sum" + dataid).text() == 0) {
                $("#pwo" + dataid).remove();
            }
        }, 200);
        break;
    default:
        //do something or nothing
}
开关(REL){
案例“Like”:
如果(!$('#pli'+dataid).length){
$('#ttl'+dataid).prepend('');
打破
案例“爱”:
if(!$('#plo'+dataid).length){
$('#ttl'+dataid).prepend('');
打破
案例“难以置信”:
if(!$('#phi'+dataid).length){
$('#ttl'+dataid).prepend('');
打破
“壮观”案例:
如果(!$('#pha'+dataid).length){
$('#ttl'+dataid).prepend('');
打破
“情绪化”案例:
if(!$('#pwo'+dataid).length){
$('#ttl'+dataid).prepend('');
打破
案例“不喜欢”:
setTimeout(函数(){
if($(“#sum”+dataid).text()=0){
$(“#pli”+dataid).remove();
}
}, 200);
打破
案例“不爱”:
setTimeout(函数(){
if($(“#sum”+dataid).text()=0){
$(“#plo”+dataid).remove();
}
}, 200);
打破
案例“不难以置信”:
setTimeout(函数(){
if($(“#sum”+dataid).text()=0){
$(“#phi”+dataid).remove();
}
}, 200);
打破
案例“不壮观”:
setTimeout(函数(){
if($(“#sum”+dataid).text()=0){
$(“#pha”+dataid).remove();
}
}, 200);
打破
案例“NotEmotional”:
setTimeout(函数(){
if($(“#sum”+dataid).text()=0){
$(“#pwo”+dataid).remove();
}
}, 200);
打破
违约:
//要么做什么,要么什么都不做
}

切换肯定有助于使代码更干净、更可读。此外,我建议制作一张地图,许多代码是重复的

下面是一个例子

if ( [ 'Like', 'Love', 'Unbelievable', 'Spectacular', 'Emotional' ].indexOf( REL ) !== -1 ) {
    var map = { 'Like': 'pli', 'Love': 'plo', 'Unbelievable': 'phi' };
    if ( !$( '#' + map[ REL ] + dataid ).length ) {
        $( '#ttl' + dataid).prepend( '<div class="' + map[ REL ] + '" id="' + map[ REL ] + dataid + '"></div>' );
    }
}

if ( [ 'NotLike', 'NotLove', 'NotUnbelievable', 'NotSpectacular', 'NotEmotional' ].indexOf( REL ) !== -1 ) {
    var map = { 'NotLike': 'pli', 'NotLove': 'plo', 'NotUnbelievable': 'phi' };
    setTimeout( function () {
        if ( $('#sum' + dataid).text() == 0 ) {
            $( '#' + map[ REL ] + dataid ).remove();
        }
    }, 200 );
}
if([‘喜欢’、‘爱’、‘难以置信’、‘壮观’、‘情感’)。indexOf(REL)!=-1){
var-map={'Like':'pli','Love':'plo','investible':'phi'};
if(!$('#'+map[REL]+dataid).length){
$('#ttl'+dataid).prepend('');
}
}
如果([‘不喜欢’、‘不爱’、‘不难以置信’、‘不壮观’、‘不动情’)。indexOf(REL)!=-1){
var-map={'NotLike':'pli','NotLove':'plo','not难以置信':'phi'};
setTimeout(函数(){
if($('#sum'+dataid).text()==0){
$('#'+map[REL]+dataid.remove();
}
}, 200 );
}

您可以使用基于
rel
值的
开关
语句。这比大小写更好。谢谢