我必須根據條件對一些數據進行排序,並將其推送到新的數組sortedFiles
,因此基本上一旦forEach
循環完成,我想調用asyncFiles()
函數並將對象傳遞給它,但它不會在下面的代碼中發生。任何想法是什麼實施錯誤或任何更好的方法來實現這項任務?如何爲每個循環調用函數完成?
filesData
是包含目錄文件的對象。
ctrl.js
if (searchObj.searchEnv === 'stat') {
stDirectory.readDirectory(function(files) {
filesData.logFiles.forEach(function(file) {
var sortedFiles = [];
var fileDate = new Date(file.fileDate).getTime();
searchStartDate = new Date(searchStartDate).getTime();
searchEndDate = new Date(searchEndDate).getTime();
if (fileDate - searchStartDate > 0 && searchEndDate - fileDate > 0) {
console.log('File Date', file);
sortedFiles.push(file);
}
}, function() {
console.log(filesData.logFiles);
filesData.logFiles = sortedFiles;
asyncFiles(filesData); // Not being called.
});
});
}
是否有任何理由,爲什麼你不能只是原來的數組進行排序?您應該花很多時間在array.sort或第三方庫(如_)上,這些庫爲數組添加了許多功能。 –