這個代碼背後的想法很簡單,當一個人點擊按鈕,插入一個假值,如果它不存在,要做到這一點,我創建了for循環,該檢查假值存在多少,如果他們是一個其小於插入別的假值無可奈何for循環if語句javascript不按預期工作
這裏是代碼
addNote(index){
const order = this.state.order
var j =0;
const note=order[index].note
for(var i =0; i<note.length; i++){
if(note[i].display===false){j++;}
if(j==0){note[note.length]={display:false}}
console.log(j)
}
console.log(note)
this.setState({order:this.state.order})
}
如果你看到控制檯日誌結果,它正在增加每次點擊的j的值,以及爲什麼我的if語句對每次點擊都有效,它應該只在j的值爲零時起作用,我正在談論這條線if(j==0){note[note.length]={display:false}}
這裏是後第二次點擊後,第二次點擊
0:Object
display:true
note:"jhj"
1:Object
display:false
2:Object
display:false
您的代碼語法錯誤。是否有東西丟失? –
*「Uncaught SyntaxError:Unexpected token}」*在第一個'if'語句後面有第二個'}'這個屬於哪裏?是否應該關閉循環體?第二個if語句應該在循環內部還是外部?如果兩個if語句都在循環內部,這個行爲很容易解釋ed:在第一次迭代中'j'將總是'0'。因此'if(j == 0)'是'true'並且新的對象被添加到數組中。換句話說,在決定添加條目之前,您並沒有看*全部*條目。您只查看第一個條目。 –