我不明白使用对象进行查找的 freecodecamp 挑战

问题描述 投票:0回答:6

我在 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");

它希望我找到一种方法来查找任何对象。我确信这不是硬代码,但我不明白他们给出的解释,无论我做什么,它仍然不起作用,并且会出现“预期分配或函数调用,而是看到一个的表情,实在是太烦人了。我不允许使用 switch、case 或 if 语句。 请帮忙。

javascript lookup-tables
6个回答
1
投票

您需要将 switch 语句转换为对象:

lookup = {
    alpha: 'Adams',
    bravo: 'Boston',
    charlie: 'Chicago',
    delta: 'Denver',
    echo: 'Easy',
    foxtrot: 'Frank'
  };

现在您有了一个带有键和值的对象,您可以通过使用键来获取值,如下所示:

lookup['charlie'] //这将 = '芝加哥'

lookup['echo'] //这将='Easy'

由于密钥将作为 val 传递到函数中,因此您现在可以使用 val 来获取与传入的密钥关联的正确值。

return lookup[val]

0
投票

我不想抢你的乐趣,但我很确定他们正在逃避 javaScript 中对象的这种行为

如果我像这样定义一个对象:

var myObject = {
   one: "1",
   two: "2"
};

然后我可以通过索引或键访问值:

var firstVal = myObject["one"]
// firstVal is "1"

希望这能让您走上正轨,同时仍然给您学习的机会。


0
投票

我已经查看了代码挑战,虽然它看起来很明显,但很容易被忽略。首先,将 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).

调用函数,瞧!


0
投票

这是在不修改 return 语句的情况下获取它的唯一方法:

// 设置

函数phoneticLookup(val) {

var 结果 = "";

// 仅更改此行以下的代码

var 查找 = {

“阿尔法”:“亚当斯”,

“bravo”:“波士顿”,

“查理”:“芝加哥”,

“Delta”:“丹佛”,

“echo”:“简单”,

“狐步舞”:“弗兰克”,

};

返回查找[val];

// 仅更改此行上方的代码 返回结果;

}

//改变这个值来测试

phoneticLookup(“查理”);


0
投票

function phoneticLookup(val) {
  let result = "";

  const lookup = {
    "alpha": "Adams",
    "bravo": "Boston",
    "charlie": "Chicago",
    "delta": "Denver",
    "echo": "Easy",
    "foxtrot": "Frank"
  }
  result = lookup[val]
  return result;
}


0
投票

// Setup
function phoneticLookup(val) {
  let result = "";

  // Only change code below this line
  let lookup = {alpha: "Adams", bravo: "Boston", charlie: "Chicago", delta: "Denver", echo: "Easy", foxtrot: "Frank"};
  result = lookup[val];

  /*
  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;
}

console.log(phoneticLookup("charlie"));

© www.soinside.com 2019 - 2024. All rights reserved.