Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 试图获得平均值时未定义_Javascript_Amazon Web Services_Amazon Cloudwatch - Fatal编程技术网

Javascript 试图获得平均值时未定义

Javascript 试图获得平均值时未定义,javascript,amazon-web-services,amazon-cloudwatch,Javascript,Amazon Web Services,Amazon Cloudwatch,我在数组中显示5个数据点,然后在数组中显示5个数据点,最后用这2个数组得到一个全局数组 所以我想要的是: 如果多数平均值等于200,则在数组中显示“向上” 如果大多数平均值不同于200,则将“向下”显示到数组中,并获取平均值不同于200的第一个时间戳 我正在尝试执行某项操作,但出现了一个错误: 无法读取未定义的属性“Average” 预期结果: [“向上”、“向下”] [null,2019-01-15T08:26:00.000Z] //****脚本是否继续 getAllMetrics(区域)

我在数组中显示5个数据点,然后在数组中显示5个数据点,最后用这2个数组得到一个全局数组

所以我想要的是:

  • 如果多数平均值等于200,则在数组中显示“向上”
  • 如果大多数平均值不同于200,则将“向下”显示到数组中,并获取平均值不同于200的第一个时间戳
我正在尝试执行某项操作,但出现了一个错误:

无法读取未定义的属性“Average”

预期结果: [“向上”、“向下”] [null,2019-01-15T08:26:00.000Z]

//****脚本是否继续
getAllMetrics(区域)。然后(res=>{
控制台日志(res);
/*
[{时间戳:2019-01-15T08:26:00.000Z,平均值:200},
{时间戳:2019-01-15T08:32:00.000Z,平均值:200},
{时间戳:2019-01-15T08:26:00.000,平均值:200},
{时间戳:2019-01-15T08:29:00.000Z,平均值:200},
{时间戳:2019-01-15T08:35:00.000Z,平均值:200}],
[{时间戳:2019-01-15T08:26:00.000Z,平均值:400},
{时间戳:2019-01-15T08:32:00.000Z,平均值:400},
{时间戳:2019-01-15T08:26:00.000,平均值:400},
{时间戳:2019-01-15T08:29:00.000Z,平均值:200},
{时间戳:2019-01-15T08:35:00.000Z,平均值:200}]]*/
tabRES=[];
//环区
var i=-1;
TsTAB=[null,null,null];
var a=-1;
while(tabReg[++a]){
TsTAB.push(空);
}
while(res[++i]){
平均值={
上升:0,,
下跌:0
};
Ts=“”;
RespARRAY=res[i];
var j=-1;
while(RespARRAY[++j]){
if(RespARRAY[j].平均==200){
Avg.up++//如果200->up
//和推送阵列TS
}否则{
平均向下+/->向下
//取回最后一个
Ts=Ts | | RespARRAY[j].时间戳;
}
}
如果(平均上升>平均下降){
tabRES.push(‘向上’);
}否则{
tabRES.push('down');
TsTAB[i]=TsTAB[i]|Ts;
}
}
console.log(tabRES);
console.log(TsTAB);
}).catch(错误=>{
控制台日志(err);
});

错误是由
while(RespARRAY[++j])
引起的。循环需要一个结束条件。目前,它会遍历您的五个值并查找不存在的第六个值。因此,
RespARRAY[j]
是未定义的,javascript无法找到该未定义值的“average”属性

你可以从

if(j > 4){ break; }
或者更好

if(j >= RespARRAY.length){ break; }
或者你可以使用for循环。 (见附件)


请注意,您会在外部(
i
)循环中发现同样的问题。

您唯一使用
Average
的地方是
RespARRAY[j]。Average
。由于错误说明
无法读取未定义的属性平均值
,这意味着
RespARRAY[j]
在某个点上未定义。哦,好的,当我执行console.log(RespARRAY[j])时,我有一个未定义的。。。