我有以下代码:
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输入从字符串转换为对象?
我研究了使用窗口和评估,但是我无法找到在这个中正确使用它们的方法。我知道这是一个愚蠢的问题,而且我可能错过了一些明显的东西,但我几乎尝试了所有我能想到的东西。
答案 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