我有一個來自我想測驗的 AJAX 呼叫的結果:如果它等于“nobody”,那么我想要一個people分配給“No people”的變數,否則我想輸出我得到的任何東西。
這是我的代碼:
const result = JSON.parse(oReq.responseText);
for (var dinner of result) {
if (dinner.diners.name != 'nobody')) {
const res = dinner.diners.name.map(diner => {
return obj.person
})
let people = res.join('<br/>* ')
}
[...]
let output = dinner.diners.name == 'nobody' ? 'No-one' : people
為什么我總是得到people is not defined,即使是什么時候dinner.diners.name == 'nobody'?
uj5u.com熱心網友回復:
是時候建立一個更好的 JS 開發環境了!linter 應該能夠檢測到變數people在您嘗試訪問它的范圍內不存在的事實。
賦值關鍵字let和const是塊范圍的(用大括號括起來的)。這意味著該變數僅在塊內和其中的塊內可用。要解決此問題,people請在正確的范圍內宣告:for..of回圈之外。
const result = JSON.parse(oReq.responseText);
let people
for (var dinner of result) {
if (dinner.diners.name != 'nobody')) {
const res = dinner.diners.name.map(diner => {
return obj.person
})
people = res.join('<br/>* ')
}
}
let output = dinner.diners.name == 'nobody' ? 'No-one' : people
請注意,我取出了回圈內部的let賦值。people如果你在那里分配它,那么people在回圈中與people上面的回圈不同
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/475253.html
標籤:javascript
上一篇:React-在useEffect和元素點擊上運行函式?
下一篇:獲取api后微調器未洗掉
