![](/img/trans.png)
[英]Don't Understand what's wrong with my Code, FreeCodeCamp (NodeJS)
[英]I don't understand freecodecamp challenge using objects for lookups
我在 freecodecamp 中有一個 JavaScript 挑戰,這可能非常簡單,但我仍然不明白如何去做。 它是這樣的:
// Setup
function phoneticLookup(val) {
var result = "";
// Only change code below this line
switch(val) {
case "alpha":
result = "Adams";
break;
case "bravo":
result = "Boston";
break;
case "charlie":
result = "Chicago";
break;
case "delta":
result = "Denver";
break;
case "echo":
result = "Easy";
break;
case "foxtrot":
result = "Frank";
}
// Only change code above this line
return result;
}
// Change this value to test
phoneticLookup("charlie");
它希望我想出一種方法來查找任何對象。 我確定這不是硬代碼,但我不理解他們給出的解釋,無論我做什么,它仍然不起作用,並且會出現“預期的分配或 function 調用,而是看到一個表達'這真的很煩人。 我不允許使用 switch、case 或 if 語句。 請幫助。
我不想為您找樂子,但是我很確定他們對javaScript中對象的這種行為不屑一顧
如果我這樣定義一個對象:
var myObject = {
one: "1",
two: "2"
};
然后,我可以通過其索引或鍵訪問值:
var firstVal = myObject["one"]
// firstVal is "1"
希望這能使您步入正軌,同時仍給您學習的機會。
您將要將switch語句隱藏為一個對象:
lookup = {
alpha: 'Adams',
bravo: 'Boston',
charlie: 'Chicago',
delta: 'Denver',
echo: 'Easy',
foxtrot: 'Frank'
};
現在您有了一個包含鍵和值的對象,您可以通過使用鍵來獲得值,如下所示:
lookup ['charlie'] //將=“芝加哥”
lookup ['echo'] //將='容易'
由於密鑰將作為val傳遞到函數中,因此您現在可以使用val獲取與傳入的密鑰關聯的正確值。
return lookup[val]
我看過代碼挑戰,盡管看起來很明顯,但是很容易錯過。 首先,將switch語句轉換為如下所示的對象查找:
var lookup = {
"alpha": "Adams",
"bravo": "Boston",
"charlie": "Chicago",
"delta": "Denver",
"echo": "Easy",
"foxtrot": "Frank",
}
要獲得值,在這種情況下,請使用objectName.propertyName或objectName [“ propertyName”]:
lookup["alpha"]; //"Adams"
lookup["bravo"]; //"Boston"
等。 然后將結果變量設置為:
result = lookup[val]; //where val is defined in the function phoneticLookup(val).
調用函數,瞧!
這是不修改return語句即可獲取的唯一方法:
// 設定
function phoneticLookup(val){
var result =“”;
//僅更改此行下方的代碼
var查找= {
“ alpha”:“ Adams”,
“ bravo”:“波士頓”,
“ charlie”:“芝加哥”,
“ delta”:“丹佛”,
“ echo”:“簡單”,
“ foxtrot”:“坦率”,
};
return lookup [val];
//僅更改此行上方的代碼返回結果;
}
//更改此值以進行測試
phoneticLookup(“ charlie”);
function ph.neticLookup(val) { let result = ""; const lookup = { "alpha": "Adams", "bravo": "Boston", "charlie": "Chicago", "delta": "Denver", "echo": "Easy", "foxtrot": "Frank" } result = lookup[val] return result; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.