簡體   English   中英

我不明白使用對象進行查找的 freecodecamp 挑戰

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM