首页 文章

.push 导致循环中的未定义值

提问于
浏览
2

我不确定为什么这段代码在'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)

对于应包含Arr的前 5 个元素的组,它返回[0, 0, 1, undefined, undefined]。出于某种原因,它似乎在否定'a'而不是添加'a'。

1 回答

  • 2

    你不能使用for (i in Arr),因为Arr不是一个对象,它是一个数组。您必须使用数组索引,如下所示:

    for (i = 0; i < Arr.length; i++)
    

    **编辑:**从技术上讲,Arr是一个对象,但是这样处理它并不是你想要的。这就是为什么你仍然得到部分正确的结果。

相关问题