2013-09-25 51 views
0

我試圖讓程序在用戶輸入狀態縮寫時提醒首都。當程序提示用戶輸入縮寫時,如果他進入ME,程序應該提醒奧古斯塔。我知道我需要在某處添加toUpperCase,但我現在不擔心這一點。目前該程序只提醒未定義。我認爲,通過使用「輸入」作爲提示的變量,它可以讓我爲警報創建一個通用程序,而無需爲每種可能性創建特定的警報。我怎樣才能解決這個問題?如何讓JavaScript程序根據提示輸入提醒對象屬性?

var capitals = { 
     ME: "Augusta", 
     NH: "Concord", 
     VT: "Montpelier", 
     MA: "Boston", 
     CT: "Hartford", 
     RI: "Providence" 
    }; 

    var input = prompt("Enter the postal abbreviation for a New England state:"); 

    alert(capitals.input); 

http://jsfiddle.net/ScY73/

回答

2

你需要做capitals[input]。您正在檢查實際的input屬性與您的使用情況,這當然是未定義的。要使用變量訪問對象的屬性,請始終使用[]符號。

+0

工作正常!謝謝。現在有道理。 – user2808701

+0

順便說一句括號表示法也是如何獲取和設置古怪的名字,如'!WOAH!'的屬性。 (雖然這通常是不好的做法,除非你有一個很好的理由)。 – Wyatt