Aynı durumda a veya b'yiswitch case test etmeniz gerektiğinde a'yı nasıl kullanırsınız ?
switch (pageid) {
case "listing-page" || "home-page":
alert("hello");
break;
case "details-page":
alert("goodbye");
break;
}
Aynı durumda a veya b'yiswitch case test etmeniz gerektiğinde a'yı nasıl kullanırsınız ?
switch (pageid) {
case "listing-page" || "home-page":
alert("hello");
break;
case "details-page":
alert("goodbye");
break;
}
Yanıtlar:
Düşüşü kullanabilirsiniz:
switch (pageid)
{
case "listing-page":
case "home-page":
alert("hello");
break;
case "details-page":
alert("goodbye");
break;
}
Diğer cevaplar, aslında neden çalıştığını açıklamadan nasıl yapılacağını açıkladığından:
Zaman switchyürütür, ilk uygun bulduğu caseaçıklama ve daha sonra bir ya da isabet kadar geçişten sonra, her kod satır yürütür breakdeyimi veya sonuna switch(ya da bir returnbütün içeren fonksiyonu bırakmak deyimi). Kasıtlı olarak break, bir sonraki kodun altındaki kod caseda düşme olarak adlandırılır . OP'nin gereksinimi için:
switch (pageid) {
case "listing-page":
case "home-page":
alert("hello");
break;
case "details-page":
alert("goodbye");
break;
}
breakİfadeleri dahil etmeyi unutmak oldukça yaygın bir kodlama hatasıdır ve switchbeklediğiniz şekilde çalışmıyorsa aramanız gereken ilk şeydir . Bu nedenle bazı insanlar, ara bildirimleri bilerek çıkarıldığında bunu açıklığa kavuşturmak için “düşmek” demek için yorum yapmaktan hoşlanırlar. Biraz daha karmaşık ve bazı durumlarda onlar düşmeden önce yürütmek için kod içerebileceğini gösterir aşağıdaki örnekte bunu:
switch (someVar) {
case 1:
someFunction();
alert("It was 1");
// fall through
case 2:
alert("The 2 case");
// fall through
case 3:
// fall through
case 4:
// fall through
case 5:
alert("The 5 case");
// fall through
case 6:
alert("The 6 case");
break;
case 7:
alert("Something else");
break;
case 8:
// fall through
default:
alert("The end");
break;
}
Ayrıca (isteğe bağlı olarak) defaultdiğer vakalardan hiçbiri eşleşmezse yürütülecek bir vaka da ekleyebilirsiniz - eğer bir defaultvaka eklemezseniz ve hiçbir vaka eşleşmezse hiçbir şey olmaz. (İsteğe bağlı olarak) varsayılan duruma geçebilirsiniz.
Yani benim ikinci örneğim someVar1 ise , arayacaktı someFunction()ve daha sonra, bazılarının altında uyarıları olan birden fazla durumda düştüğü için dört uyarı göreceksiniz. Mi someVar3, 4 veya 5 İki uyarıları görürdük olduğunu. Eğer someVar7 Eğer "Başka bir şey" görürdünüz ve 8 ise ya da başka herhangi bir değer "sonunu" yazdığını görür.
Değiştirmelisin!
switch (true) {
case ( (pageid === "listing-page") || (pageid === ("home-page") ):
alert("hello");
break;
case (pageid === "details-page"):
alert("goodbye");
break;
}
Unut switchve break, ile oynayalım if. Ve iddia etmek yerine
if(pageid === "listing-page" || pageid === "home-page")
vakalarla birkaç dizi oluşturalım ve Array.prototype.includes () ile kontrol edelim
var caseA = ["listing-page", "home-page"];
var caseB = ["details-page", "case04", "case05"];
if(caseA.includes(pageid)) {
alert("hello");
}
else if (caseB.includes(pageid)) {
alert("goodbye");
}
else {
alert("there is no else case");
}