在以下代码中,我尝试将所有PNG添加到screenshot
对象
common.getFilesInFolder(reportDir, '.png', function(err, PNGs) {
if(!err && PNGs.length > 0){
for(var i=0; i< PNGs.length; i++) {
report[test[0]].screenshot[id] = PNGs[i];
}
}
callback(null, report);
});
但是,在迭代报表对象.report[test[0]].screenshot[0]
时,正在获取undefined
答案 0 :(得分:1)
假设:
test
,test[0]
和report[test[0]]
在外部范围内定义
screenshot[id]
应该读screenshot[i]
(因为否则你会在每次迭代中反复覆盖相同的元素)
结果代码只是将数组PNGs
复制到.screenshot
的{{1}}属性中:
然后你可以删除循环并只获取数组的副本:
report[test[0]]
你甚至可以简单地将引用复制到数组中,如果没有别的东西可以修改它:
report[test[0]].screenshot = PNGs.slice(0);
答案 1 :(得分:0)
根据这段代码,报告[]根本没有被定义为数组或对象。也许你只需要
var report=[]; // array
或
var report={}; // object
作为函数的第一行?
此外,测试[]未定义