假设我有一些文件需要收集有关信息并将这些信息推送到数组中。如果它们的长度不为零,则应加载它们,但如果它们的长度为零,则应忽略它们。我还需要将加载文件的总数作为全局变量。这似乎是一个 for 循环的工作,但是在我知道“长”文件的总数之前,我将如何构建它?我什至可以在 for 循环中访问全局 for 吗?如果不是 for 循环,那么“正确”的方式是什么?
问问题
110 次
2 回答
1
如果您事先不知道文件总数,则应使用while
循环并在其他条件下中断:
var TOTAL_FILES = 0,
files = [],
file;
// assume getNextFile() returns the next file in the list...
while (file = getNextFile()){
// ...and the File object has a length instance attribute...
if (file.length > 0){
TOTAL_FILES++;
// ...and processFile() works some magic on the file and returns it
files.push(processFile(file));
}
}
此循环将继续执行,直到getNextFile()
返回一个虚假值(false
、null
、undefined
等)。
于 2012-06-29T16:21:09.997 回答
1
不知道具体细节,我假设您使用 ajax 获取文件。由于 javascript 中的字符串类似于字符数组,因此您可以在 ajax 事件的 responseText 上获取长度。我希望这有帮助:
使用 jQuery Ajax...
var loadedFileData = [];
window.totalFiles = 0;
["file1", "file2", "file3"].forEach(function(file) {
$.get("/path/to/files/"+file, function(data) {
if (data.length) {
loadedFileData.push(data);
totalFiles++;
}
});
});
于 2012-06-29T16:26:22.063 回答