我正在使用几个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
}
}
}
最佳答案
显然,这里的问题是有时您的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
});
}
关于javascript - 对于循环添加未定义的条目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16148079/