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 switch
yürütür, ilk uygun bulduğu case
açıklama ve daha sonra bir ya da isabet kadar geçişten sonra, her kod satır yürütür break
deyimi veya sonuna switch
(ya da bir return
bütün içeren fonksiyonu bırakmak deyimi). Kasıtlı olarak break
, bir sonraki kodun altındaki kod case
da 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 switch
beklediğ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) default
diğer vakalardan hiçbiri eşleşmezse yürütülecek bir vaka da ekleyebilirsiniz - eğer bir default
vaka 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 someVar
1 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 someVar
3, 4 veya 5 İki uyarıları görürdük olduğunu. Eğer someVar
7 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 switch
ve 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");
}