2012-06-22 49 views
6

Tôi có một tuyên bố trường hợp chuyển đổi không hoạt động. Tôi đã kiểm tra đầu vào, nó hợp lệ. Nếu người dùng là 1, nó sẽ mặc định. Nếu người dùng là bất kỳ số nào, nó sẽ mặc định. Có gì sai ở đây? Tôi hoàn toàn không biết javascript.JS trường hợp chuyển đổi không hoạt động

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

Biến 'người dùng' có chứa gì? Một 'đối tượng' hoặc' int'? – user278064

+0

Đó là lý do tại sao tôi thích gõ mạnh :) –

+0

Chris, thử 'chuyển đổi (~~ người dùng)' – KingRider

Trả lời

16

Đảm bảo bạn không trộn chuỗi và số nguyên.
Hãy thử: Loại

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

'default' không cần thiết' break' – KingRider

10

Vấn đề là loại dữ liệu không khớp. loại truyền của người dùng thành số nguyên.

+0

Làm thế nào? Tôi nghĩ tất cả những gì bạn làm trong js là var – Chris

4

Cast của biến dùng để nguyên

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

Javascript là loại nhận thức. Vì vậy, '1' không giống như 1. Trong trường hợp của bạn, "người dùng" phải là số, không phải là chuỗi. Bạn có thể truyền bằng cách chỉ:

user = Number(user) 
Các vấn đề liên quan