我不明白使用对象进行查找的 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");
它要我找出一种方法来查找任何对象。我确定这不是硬代码,但我不明白他们给出的解释,无论我做什么,它仍然不起作用,并且会得出一个 'Expected an assignment or function call and instead saw an expression',这真的很烦人。我不允许使用 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'] //which will = 'Chicago'
lookup['echo'] //which will = 'Easy'
由于密钥将作为 val 传递到函数中,您现在可以使用 val 获取与传入的密钥关联的正确值。
return lookup[val]
我查看了代码挑战,虽然它看起来很明显,但很容易错过。首先,将 switch 语句转换为对象查找,如下所示:
var lookup = {
"alpha": "Adams",
"bravo": "Boston",
"charlie": "Chicago",
"delta": "Denver",
"echo": "Easy",
"foxtrot": "Frank",
}
获取使用的值
objectName.propertyName 或对象名称["propertyName"]
在这种情况下:
lookup["alpha"]; //"Adams"
lookup["bravo"]; //"Boston"
等等。然后将结果变量设置为:
result = lookup[val]; //where val is defined in the function phoneticLookup(val).
调用函数,瞧!
这是在不修改 return 语句的情况下获取它的唯一方法:
// 设置
函数 phoneticLookup(val) {
var 结果 = "";
// 只修改这一行下面的代码
var 查找 = {
"alpha": "Adams",
"bravo": "Boston",
"charlie": "Chicago",
"delta": "Denver",
"echo": "Easy",
"foxtrot": "Frank",
};
return 查找[值];
// 只修改这一行上面的代码
return 结果;
}
// 将此值更改为测试
phoneticLookup("charlie");
我在 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");
它要我找出一种方法来查找任何对象。我确定这不是硬代码,但我不明白他们给出的解释,无论我做什么,它仍然不起作用,并且会得出一个 'Expected an assignment or function call and instead saw an expression',这真的很烦人。我不允许使用 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'] //which will = 'Chicago'
lookup['echo'] //which will = 'Easy'
由于密钥将作为 val 传递到函数中,您现在可以使用 val 获取与传入的密钥关联的正确值。
return lookup[val]
我查看了代码挑战,虽然它看起来很明显,但很容易错过。首先,将 switch 语句转换为对象查找,如下所示:
var lookup = {
"alpha": "Adams",
"bravo": "Boston",
"charlie": "Chicago",
"delta": "Denver",
"echo": "Easy",
"foxtrot": "Frank",
}
获取使用的值 objectName.propertyName 或对象名称["propertyName"] 在这种情况下:
lookup["alpha"]; //"Adams"
lookup["bravo"]; //"Boston"
等等。然后将结果变量设置为:
result = lookup[val]; //where val is defined in the function phoneticLookup(val).
调用函数,瞧!
这是在不修改 return 语句的情况下获取它的唯一方法:
// 设置
函数 phoneticLookup(val) {
var 结果 = "";
// 只修改这一行下面的代码
var 查找 = {
"alpha": "Adams",
"bravo": "Boston",
"charlie": "Chicago",
"delta": "Denver",
"echo": "Easy",
"foxtrot": "Frank",
};
return 查找[值];
// 只修改这一行上面的代码 return 结果;
}
// 将此值更改为测试
phoneticLookup("charlie");