2012-06-22 19 views
6

Ho una dichiarazione caso interruttore che non funziona. Ho controllato l'input, è valido. Se l'utente è 1, passa al valore predefinito. Se l'utente è un numero qualsiasi, è impostato di default. Cosa c'è che non va qui? Non conosco bene javascript.Caso interruttore JS non funzionante

switch (user) { 
case 1: 
    // stuff 
    break; 
case 2: 
    // more stuff 
    break; 
default: 
    // this gets called 
    break; 
} 
+1

Cosa contiene la variabile 'utente'? Un 'oggetto' o un' int'? – user278064

+0

Questo è il motivo per cui preferisco una forte digitazione :) –

+0

Chris, prova 'switch (~~ utente)' – KingRider

risposta

16

Assicurati di non mischiare stringhe e interi.
Prova: Tipo

switch (user) { 
    case "1": 
     // stuff 
     break; 
    case "2": 
     // more stuff 
     break; 
    default: 
     // this gets called 
} 
+0

'default' non necessario' break' – KingRider

10

Il problema è la mancata corrispondenza del tipo di dati. tipo di cast di utente in intero.

+0

Come? Ho pensato che tutto ciò che fai in js è var – Chris

4

Fusioni di variabile utente a intero

switch (+user) { 
    case 1: .. // 
} 
2

Javascript è di tipo-aware. Quindi '1' non è uguale a 1. Nel tuo caso l'utente deve essere numerico, non la stringa. Puoi lanciarlo solo:

user = Number(user) 
Problemi correlati