对于循环添加未定义的条目

时间:2013-04-22 13:15:28

标签: javascript

我正在使用几个for循环来创建一个数组。问题是,在第二次传递时它增加了4个未定义的变量,我无法看到它们来自何处。

注意:if语句是正确的,只有在匹配时才会被触发。

代码:

for (var x = 0; x < galleryObject[1].length; x++) {
    gallerys[x]= [];    

    for (var i = 0; i < galleryObject[2].length; i++) {

        if (galleryObject[2][i].galId === galleryObject[1][x].id) {


            gallerys[x][i] = {};
            gallerys[x][i].filename=galleryObject[2][i].fileName
            gallerys[x][i].caption =galleryObject[2][i].caption


        }

    }
}

1 个答案:

答案 0 :(得分:2)

显然这里的问题是有时你的IF语句返回false。在这种情况下,它尝试向数组添加一个元素,但是没有指定一些先前的索引,所以它用'undefined'填充它们。

尝试将IF语句中的代码更改为:

    if (galleryObject[2][i].galId === galleryObject[1][x].id) {
        gallerys.push({
                          filename:galleryObject[2][i].fileName,
                          caption :galleryObject[2][i].caption
                      });
    }