Javascript 如何从函数中获取对象

Javascript 如何从函数中获取对象,javascript,arrays,function,object,return,Javascript,Arrays,Function,Object,Return,我试图在函数CountAmountOneWeek中传递已更改的数据对象 但当我试图得到它,我得到的消息未定义 这是为了计算过去7天的金额,在计算完金额后,我将删除前7天,以便我可以再次计算7天的金额 [{日期:2016-01-05,用户id:1,用户类型:自然,类型: 现金收入,经营:{金额:200.00,币种:欧元}, {日期:2016-01-06,用户id:2,用户类型:司法,类型: 现金流出,业务:{金额:300.00,货币:欧元}, {日期:2016-01-06,用户id:1,用户类型:

我试图在函数CountAmountOneWeek中传递已更改的数据对象 但当我试图得到它,我得到的消息未定义

这是为了计算过去7天的金额,在计算完金额后,我将删除前7天,以便我可以再次计算7天的金额

[{日期:2016-01-05,用户id:1,用户类型:自然,类型: 现金收入,经营:{金额:200.00,币种:欧元}, {日期:2016-01-06,用户id:2,用户类型:司法,类型: 现金流出,业务:{金额:300.00,货币:欧元}, {日期:2016-01-06,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:30000欧元}, {日期:2016-01-07,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:1000.00,货币:欧元}, {日期:2016-01-07,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:100.00,货币:欧元}, {日期:2016-01-10,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:100.00,货币:欧元}, {日期:2016-01-10,用户id:2,用户类型:司法,类型: 现金收入,经营:{金额:1000000.00,币种:欧元}, {日期:2016-01-10,用户id:3,用户类型:自然,类型: 现金流出,业务:{金额:1000.00,货币:欧元}, {日期:2016-02-15,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:300.00,货币:欧元}] readJSON=函数{ fs.readFileargs,'utf8',functionerr,data{ 如果犯了错误,就扔出错误; obj=JSON.parsedata; //console.logobj; 打印结果Tobj; var sum=CountAmountIneoweeKobj; console.logSUM+sum[0]; console.logSUM+sum[1]。数据; }; } 我需要更改数据对象和总和

function countAmountInOneWeek(data) {
  var recordRemoveIndex;
  var sum = data[0].operation.amount;
  for (var i = 1; i < data.length; i++) {
    var date1 = new Date(data[0].date);
    var date2 = new Date(data[i].date);

    const diffTime = Math.abs(date2.getTime() - date1.getTime());
    const difference = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
    //console.log(diffTime + " Time " + difference);

    if (difference < 7) {
      sum = sum + data[i].operation.amount;
      recordRemoveIndex = i;
    }
  }

  for (var i = 0; i <= recordRemoveIndex; i++) {
    data.shift();
  }
  console.log(data);
  return [sum, data];
}
var数据=[{日期:2016-01-05,用户id:1,用户类型:自然,类型: 现金收入,经营:{金额:200.00,币种:欧元}, {日期:2016-01-06,用户id:2,用户类型:司法,类型: 现金流出,业务:{金额:300.00,货币:欧元}, {日期:2016-01-06,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:30000欧元}, {日期:2016-01-07,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:1000.00,货币:欧元}, {日期:2016-01-07,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:100.00,货币:欧元}, {日期:2016-01-10,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:100.00,货币:欧元}, {日期:2016-01-10,用户id:2,用户类型:司法,类型: 现金收入,经营:{金额:1000000.00,币种:欧元}, {日期:2016-01-10,用户id:3,用户类型:自然,类型: 现金流出,业务:{金额:1000.00,货币:欧元}, {日期:2016-02-15,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:300.00,货币:欧元}] 函数countAmountInOneWeekdata{ var recordRemoveIndex; var sum=data[0]。operation.amount; 对于变量i=1;i
   console.log("SUM " + sum[0]);
   console.log("SUM " + sum[1].data);

然后可以根据需要使用或修改json2

下面的代码显示它将返回正确的值

让json=[{日期:2016-01-05,用户id:1,用户类型:natural,类型: 现金收入,经营:{金额:200.00,币种:欧元}, {日期:2016-01-06,用户id:2,用户类型:司法,类型: 现金流出,业务:{金额:300.00,货币:欧元}, {日期:2016-01-06,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:30000欧元}, {日期:2016-01-07,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:1000.00,货币:欧元}, {日期:2016-01-07,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:100.00,货币:欧元}, {日期:2016-01-10,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:100.00,货币:欧元}, {日期:2016-01-10,用户id:2,用户类型:司法,类型: 现金收入,经营:{金额:1000000.00,币种:欧元}, {日期:2016-01-10,用户id:3,用户类型:自然,类型: 现金流出,业务:{金额:1000.00,货币:欧元}, {日期:2016-02-15,用户id:1,用户类型:自然,类型: 现金流出,业务:{金额:300.00,货币:欧元}}; //此代码应该在readJSON中找到 //我们只是使用上面的json数据直接运行它 //******************** var sum=countAmountInOneWeekjson; console.logsum[0];//1032700 console.logsum[1][0];//因为sum[1]是[{date:'2016-02-15',user_id:1,user_type:'natural',type:'cash_out',operation:{amount:300,currency:'EUR'}] //********* *********** 函数countAmountInOneWeekdata{ var recordRemoveIndex; var sum=data[0]。operation.amount; forvar i=1;iforvar i=0;我可能重复@NickParsons How?函数在callback@mplungjan我想他们正在尝试调用readJSON,然后尝试从那里返回…@Emilis你能给出数据值的示例吗?不是json对象,而是从文件中读取的字符串?@chatnoir在描述中添加了文件。@Emilis不客气!我已将其编辑为使用您的语法而不是我的语法,将sum[1]。data更改为sum[1][0]。
console.log(sum[0]); //1032700 
console.log(sum[1][0]); // because sum[1] is [ { date: '2016-02-15',user_id: 1,user_type: 'natural',type: 'cash_out',operation: {amount: 300, currency: 'EUR' } } ]