Member 13841915 Ответов: 1

Как получить значение из switch case в javascript


у меня есть переключатель с несколькими случаями и получением результата ,как указано в приведенном ниже коде, есть ли более короткий путь или лучший способ для этого

Что я уже пробовал:

var selectedCase=false;
             var selectedItem='';
            var item = ui.item;
              switch(item.type)
           {
               case 'brands':
               selectedCase=true;
               selectedItem= base_url+'brand/'+item.BrandUniqueName;
               searchHeader.saveResult(selectedItem);
               window.location.href = base_url+'brand/'+item.BrandUniqueName;

               break;
               case 'categories':
               selectedCase=true;
               selectedItem= base_url+'categories/'+item.CategoryUniquename;
               searchHeader.saveResult(selectedItem);
               window.location.href = base_url+'categories/'+item.CategoryUniquename;

               break;
               case "categoryBrand":
               selectedCase=true;
               selectedItem= base_url+'brand/'+item.BrandUniqueName+'?category='+item.CategoryUniquename;
               searchHeader.saveResult(selectedItem);
               window.location.href = base_url+'brand/'+item.BrandUniqueName+'?category='+item.CategoryUniquename;

               break;
               case 'offercategory':
               selectedCase=true;
               selectedItem=  base_url+'offercategory/'+item.OfferCategory;
               searchHeader.saveResult(selectedItem);
               window.location.href = base_url+'offercategory/'+item.OfferCategory;

               break;
               case 'vendorOfferCategory':
               selectedCase=true;
               selectedItem=base_url+'offers/'+item.UniqueName+'?category='+item.OfferCategory;
               searchHeader.saveResult(selectedItem);
               window.location.href = base_url+'offers/'+item.UniqueName+'?category='+item.OfferCategory;

               break;
               case 'vendor':
               selectedCase=true;
               selectedItem= base_url+'offers/'+item.VendorUniqueName;
               searchHeader.saveResult(selectedItem);
               window.location.href = base_url+'offers/'+item.VendorUniqueName;

               break;
               case 'offers':
               selectedCase=true;
               selectedItem= base_url+'offers/'+item.UniqueName;
               searchHeader.saveResult(selectedItem);
                window.location.href = base_url+'offers/'+item.UniqueName;

               break;
               case 'vendorcategory':
               selectedCase=true;
               selectedItem= base_url+'topcategories/'+item.UniqueName;
               searchHeader.saveResult(selectedItem);
               window.location.href = base_url+'topcategories/'+item.UniqueName;

               break;
               case 'vendors':
               selectedCase=true;
               selectedItem= base_url+'offers/'+item.UniqueName;
               searchHeader.saveResult(selectedItem);
               window.location.href = base_url+'offers/'+item.UniqueName;

               break;
               case 'products':
               selectedCase=true;
               selectedItem= base_url+'products/'+item.InternalLink;
               searchHeader.saveResult(selectedItem);
               window.location.href = base_url+'products/'+item.InternalLink;

               break;
               case "Not Available":
               //$("#autocomplete").val('');
               break;

           }

itsmypassion

вместо этого можно использовать массивы или объектные литералы

https://stackoverflow.com/questions/2307157/alternative-to-the-switch-statement
https://toddmotto.com/deprecating-the-switch-statement-for-object-literals/

1 Ответов

Рейтинг:
0

W∴ Balboos, GHB

Вы можете реорганизовать свои данные таким образом, чтобы установить значение до переключения и изменять его только в случае необходимости (и возможности).

Напр.:

selectedCase=true;

Вы можете поместить это вне коммутатора и только изменить его в коммутаторе, когда
selectedCase=false;


Удалите все, что находится в вашем переключателе (петля, что угодно), что также остается неизменным. Скажите компьютеру только один раз!