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']
添加回答
舉報