3 回答

TA贡献1827条经验 获得超8个赞
Object.keys 返回一个键数组,如下所示:
let dict = {
'p': "100 units" ,
'q': "200 units",
'g': "500 units",
'e': "10 units"}
const keys = Object.keys(dict)
console.log(keys) // output ['p', 'q', 'g', 'e']
因此,如果要检查用户输入的字母,则需要遍历键数组并在循环内使用 if 语句来检查用户输入:
let userInput = 'g'
for(key of keys){
if(key === userInput){
console.log(dict[key]) //output 500 units
}else{
console.log('Fall back response')
}
}
阅读此处的文档以获取详细信息https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of

TA贡献1812条经验 获得超5个赞
您可以使用in
运算符检查对象中是否存在键,例如:
if(input in dict){}
使用它,您可以简单地创建一个这样的程序,dict
您的对象和input
用户按下的键在哪里:
console.log(input in dict ? 'Chosen' + dict[input] : 'Fallback text')

TA贡献1785条经验 获得超8个赞
以下是一些您可能会觉得有用的代码:
letter="e";
console.log((units=dict[letter])?letter+" for "+units:"This option is not available");
letter是用户的输入。您可以/应该检查没有输入|超过一个字母。
dict[letter]返回 key 的值letter。如果未找到,则返回未定义,类似于 false。
我们将该值分配给一个变量units,因此我们不必再次查找它(在非常复杂的对象和函数中用于节省资源)。
被condition?ifTrue:ifFalse评估(我将条件放在括号中 - 以避免不得不考虑没有它们可能会评估什么。可能相同。通常,我使用这种格式:((condition)?(do/value if true):(do/value if false))。
其余的应该是显而易见的。
我会推荐一致的缩进和间距:
let dict = {
'p': "100 units",
'q': "200 units",
'g': "500 units",
'e': "10 units"
};
const keys = Object.keys(dict);
console.log(keys) // output ['p', 'q', 'g', 'e']
添加回答
举报