Javascript 将值推送到JSON对象

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];

在下面的代码中,我试图将所有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);
      });
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;