将值推送到JSON对象

时间:2014-10-31 09:30:36

标签: 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];
          }
        }
        callback(null, report);
      });

但是,在迭代报表对象.report[test[0]].screenshot[0]时,正在获取undefined

2 个答案:

答案 0 :(得分:1)

假设:

  1. testtest[0]report[test[0]]在外部范围内定义

  2. screenshot[id]应该读screenshot[i](因为否则你会在每次迭代中反复覆盖相同的元素)

  3. 结果代码只是将数组PNGs复制到.screenshot的{​​{1}}属性中:

  4. 然后你可以删除循环并只获取数组的副本:

    report[test[0]]

    你甚至可以简单地将引用复制到数组中,如果没有别的东西可以修改它:

    report[test[0]].screenshot = PNGs.slice(0);
    

答案 1 :(得分:0)

根据这段代码,报告[]根本没有被定义为数组或对象。也许你只需要

var report=[]; // array

var report={}; // object

作为函数的第一行?

此外,测试[]未定义