亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

循環遍歷字典

循環遍歷字典

喵喔喔 2022-10-21 09:31:22
Js新手在這里。我有兩個變量,我從用戶輸入(這是一個字符串)中提取的值。現在我有一本字典:let dict = {          'p':  "100 units" ,          'q': "200  units",          'g': "500  units",          'e': "10  units"        }我這里要做的是寫一個條件,允許用戶只輸入dict中的鍵值(例如,“p for 100 units”),即發送回退響應“此選項不可用”( console.log)如果我使用 Object.keys(dict) 上的循環執行此操作,則響應將發送 4 次(等于字典中鍵值對的數量)。如何檢查用戶輸入的內容是否與我的字典相對應,如果沒有,則只發送一次響應?我認為無論如何我都必須遍歷字典。我還想為 if 塊設置一個回報。IE:if(whatever){//codereturn 0}else return 1我可以嘗試任何其他想法/方法嗎?
查看完整描述

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


查看完整回答
反對 回復 2022-10-21
?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

您可以使用in運算符檢查對象中是否存在鍵,例如:

if(input in dict){}

使用它,您可以簡單地創建一個這樣的程序,dict您的對象和input用戶按下的鍵在哪里:

console.log(input in dict ? 'Chosen' + dict[input] : 'Fallback text')


查看完整回答
反對 回復 2022-10-21
?
慕的地10843

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']


查看完整回答
反對 回復 2022-10-21
  • 3 回答
  • 0 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號