2017-06-08 21 views
5

Cách nhanh nhất, từ quan điểm có thể đọc/nhập là gì, để gán giá trị cho biến cụ thể dựa trên biến có liên quan?Cách nhanh nhất để gán một biến dựa trên một mảng là gì?

var abbrev; 

if(state=='Pennsylvania'){ 
    abbrev='PA'; 
}else if(state=='New Jersey'){ 
    abbrev='NJ'; 
}else if(state=='Delaware'){ 
    abbrev='DE'; 
} 
//and so on... 

Tôi đang cố gắng tránh tạo một mảng cho tên tiểu bang và một mảng khác cho chữ viết tắt vì mối quan hệ bị mất với khai báo riêng biệt.

+0

Sử dụng một 'Map' ('Object' trong JS). Sau đó, bạn có thể có các khóa chuỗi trỏ vào các giá trị chuỗi (ví dụ: 'obj ['Pennsylvania'] = 'PA'') – CollinD

+1

Bạn cần ** một số cách ** để liên kết trạng thái thành chữ viết tắt, do đó, đặt cược tốt nhất của bạn có thể thực sự là một mảng kết hợp . Tùy chọn 'tốt nhất' là chủ quan và phụ thuộc vào những gì bạn xem là 'tốt nhất'. Bốn tùy chọn về cơ bản là một câu lệnh if/else, một câu lệnh switch, một mảng kết hợp hoặc ánh xạ. –

Trả lời

7

Bạn có thể sử dụng một object cho chữ viết tắt, như

var abbreviations = { 
     'Pennsylvania': 'PA', 
     'New Jersey': 'NJ', 
     'Delaware': 'DE' 
    }; 

Cách sử dụng:

abbrev = abbreviations[state]; 
+0

Chính xác những gì tôi cần. Cảm ơn bạn. – koleslaw

+0

@koleslaw, bạn được chào đón. :-) –

1

chỉ là một gợi ý, bạn đã cố gắng sử dụng trường hợp? có vẻ sạch hơn và dễ đọc

0

thử nó:

var abbrev = ''; 
    if(state.indexOf(' ') == -1){ 
    abbrev = state.substring(0,2).toUpperCase(); 
    }else{ 
    var firstLetter = state.substring(0,1).toUpperCase(); 
    var secoundLetter = state.substring(state.indexOf(' '),1).toUpperCase(); 
    abbrev = firstLetter + secoundLetter; 
    } 
    alert(abbrev); 
+0

Điều này không làm việc ' t làm việc cho các tiểu bang như pennsylvania hoặc texas bao gồm một từ. –

+2

Cho phép bắt đầu từ [bắt đầu] (https://en.wikipedia.org/wiki/List_of_U.S._state_abbreviations) ... 'Alaska: AK' – Emissary

+1

Tôi là người Brazil, tôi không biết các tiểu bang của Hoa Kỳ, trong trường hợp, mã này hoạt động: Acre - AC, Alagoas - AL, Amazonas - AM, São Paulo - SP, Bahia - BA, Belo Horizonte - BH, Minas Gerais - MG, vv ...;) – sergioBertolazzo

Các vấn đề liên quan