我不了解使用对象进行查找的freecodecamp挑战

时间:2018-01-30 18:10:48

标签: javascript lookup-tables

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

它希望我找到一种方法来查找任何对象。我确定它不是一个硬代码,但我不理解他们给出的解释,无论我做什么,它仍然无法工作,并会提出一个& #39;期待分配或函数调用,而是看到一个表达式'这真的很烦人。我不允许使用switch,case或if语句。 请帮助。

4 个答案:

答案 0 :(得分:0)

我不想为你窃取这些乐趣,但我很确定他们在javaScript中躲避对象的这种行为

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

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

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

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

希望这能让你继续保持良好的学习机会。

答案 1 :(得分:0)

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

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

现在你有一个带有键和值的对象,你可以使用这样的键来获取值:

  

查找['查理'] //这将='芝加哥'

     

查找[' echo'] //这将='简单'

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

return lookup[val]

答案 2 :(得分: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).

调用函数,瞧!

答案 3 :(得分:0)

这是不修改return语句即可获取它的唯一方法:

//设置

function phoneticLookup(val){

var result =“”;

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

var lookup = {

“ alpha”:“亚当斯”,

“ bravo”:“波士顿”,

“查理”:“芝加哥”,

“三角洲”:“丹佛”,

“ echo”:“轻松”,

“狐步舞”:“坦率”,

};

返回查找[val];

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

}

//将此值更改为test

phoneticLookup(“ charlie”);