Javascript .推送导致循环中未定义的值
我不确定为什么此代码在“组”数组中返回未定义的值:Javascript .推送导致循环中未定义的值,javascript,arrays,Javascript,Arrays,我不确定为什么此代码在“组”数组中返回未定义的值: Arr = [0,0,1,0,0,1,1,0,1,0] for (j=0; j<5; j++){ for (i in Arr) { this["groupS" + j + "C" + i] = [Arr[i]] for (a=1; a<=j; a++) { this["groupS" + j + "C" + i].unshift(Arr[i-a])
Arr = [0,0,1,0,0,1,1,0,1,0]
for (j=0; j<5; j++){
for (i in Arr) {
this["groupS" + j + "C" + i] = [Arr[i]]
for (a=1; a<=j; a++) {
this["groupS" + j + "C" + i].unshift(Arr[i-a])
this["groupS" + j + "C" + i].push(Arr[i+a])
}
}
}
console.log(groupS2C2)
Arr=[0,0,1,0,0,1,1,0,1,0]
对于(j=0;j您不能使用for(i in Arr)
,因为Arr
不是对象,而是数组。
必须对数组使用索引,如下所示:
for (i = 0; i < Arr.length; i++)
for(i=0;i
EDIT:从技术上讲,Arr
是一个对象,但这样对待它并不是你想要的。这就是为什么你仍然得到部分正确的结果。在我回答一个问题之前,我需要了解CA
是如何定义的,以及你的上下文是什么,这个
也指什么,它是全局对象吗,local对象、函数、类实例?哦,我没有更新它。它说CA应该是Arr(我在将其他CA更改为Arr之前测试了它)太棒了!这解决了我的问题。非常感谢。你当然可以使用for(I in Arr)
处理数组,但是(这是OP的问题),i
将是属性名,因此是字符串。