【发布时间】:2017-04-18 22:23:52
【问题描述】:
这段代码背后的想法很简单,当有人单击按钮时,如果不存在则插入一个假值,为此,我创建了 for 循环,它检查存在多少假值,如果它们小于一而不是插入错误值,否则什么也不做
这里是代码
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"
第二次点击后的数组
0:Object
display:true
note:"jhj"
1:Object
display:false
第二次点击后的数组
0:Object
display:true
note:"jhj"
1:Object
display:false
2:Object
display:false
【问题讨论】:
-
您的代码有语法错误。是不是少了什么东西?
-
"Uncaught SyntaxError: Unexpected token }" 在第一个
if语句之后还有第二个}。这应该属于哪里?它应该关闭循环体吗?第二个if语句应该在循环内部还是外部?如果两个if语句都在循环内,则行为很容易解释:在第一次迭代中j将始终为0。因此if (j==0)是true并且一个新对象被添加到数组中。换句话说,在您决定添加条目之前,您不会查看 所有 条目。您只查看第一个条目。
标签: javascript reactjs for-loop