Javascript 将值推送到JSON对象
在下面的代码中,我试图将所有PNG添加到Javascript 将值推送到JSON对象,javascript,json,node.js,Javascript,Json,Node.js,在下面的代码中,我试图将所有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];
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);
});
common.getfileinfolder(reportDir,'.png',函数(err,PNGs){
如果(!err&&PNGs.length>0){
对于(变量i=0;i
但是,在迭代报表对象时,
.report[test[0]]。屏幕截图[0]
得到了未定义的根据这段代码,报表[]根本没有定义为数组或对象。也许你只是需要
var report=[]; // array
或
作为函数的第一行
此外,测试[]未定义,假设:
test
、test[0]
和report[test[0]]
在外部范围内定义
该screenshot[id]
应为screenshot[i]
(否则,您将在每次迭代中反复覆盖相同的元素)
结果代码只是将数组PNGs
复制到报告[test[0]
的屏幕截图属性中:
然后,您可以删除循环,只需复制阵列:
report[test[0]].screenshot = PNGs.slice(0);
您甚至可以简单地将引用复制到数组,如果没有其他内容要修改它:
report[test[0]].screenshot = PNGs;
您的错误控制台会说什么(如果有的话)?id
、test[]
和tests[]
的声明在哪里?只是旁注,与问题无关-如果您在node.js中执行这样的回调函数(看起来您需要典型的nodejs async func),这并不意味着它是异步的,也不阻塞。它是。您必须将其包装在setTimeout()中,以使其异步且无阻塞。这是一个错误……我忘了删除它line@Jarema在这个层次上,我认为你的评论只会混淆操作……那么id
呢?这可能是i
?很可能report
可能是一个对象-这取决于(未指定的)键格式。我需要将值推送到screeshot对象..可能吗..ice在`{屏幕截图:[image1,image2]}中format@Altinak正确-已修改答案。@Psl是,可以将图像对象存储在数组中。但是,您在代码中没有说明变量PNGs是什么-它是如何定义的。我认为你需要更多的上下文来回答这个问题,例如所有变量是如何定义的。。这样我就可以接受.ut告诉我需要删除for llop?
report[test[0]].screenshot = PNGs;