在函数

时间:2017-07-22 17:54:33

标签: javascript

我有以下代码:

 function price ([arg1,arg2]) {
    let city1 = {coffee:0.5, water:0.8, beer:1.2, sweets:1.45, peanuts:1.6};
    let city2 = {coffee:0.4, water:0.9, beer:1.4, sweets:1.25, peanuts:1.8};
    console.log (arg1[arg2]);
}

price (["city1","water"])

我在这里尝试实现的是,当您使用城市名称和产品调用该功能时,会列出特定产品的价格。

从我所看到的,它是因为" city1"将输入作为字符串输入,这就是调用函数时没有得到结果的原因。任何想法如何将arg1输入从字符串转换为对象?

我研究了使用窗口和评估,但是我无法找到在这个中正确使用它们的方法。我知道这是一个愚蠢的问题,而且我可能错过了一些明显的东西,但我几乎尝试了所有我能想到的东西。

2 个答案:

答案 0 :(得分:1)

您可以将城市用作对象的关键字,并通过密钥以及产品的密钥进行访问。

Module SDK

答案 1 :(得分:1)

重新考虑如何使用这些对象。通过使用括号表示法而不是点符号来访问对象属性,您可以传入一个字符串,这有助于获取事先未知的值。下面是一个示例,但请注意您还应检查该属性是否实际存在。

另外值得一提的是,你不应该像这样的数组传递你的参数。要么直接传递它们,要么使用对象。

print (df.query('b')['a'])
0    1
1    2
Name: a, dtype: int64

print (df.query('b')[['a']])
   a
0  1
1  2

print (df.query('b'))
   a     b
0  1  True
1  2  True