我不确定为什么这段代码会在'group'数组中返回未定义的值:
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)
它为应该包含[0, 0, 1, undefined, undefined]
的前5个元素的组返回Arr
。出于某种原因,它似乎在否定'a'而不是在添加'a'时起作用。
答案 0 :(得分:2)
您不能使用for (i in Arr)
,因为Arr
不是对象,而是数组。
您必须为数组使用索引,如下所示:
for (i = 0; i < Arr.length; i++)
编辑:从技术上讲,Arr
是一个对象,但是将其作为对象并不是您想要的。这就是为什么您仍然获得部分正确结果的原因。