2014-01-30 50 views
-1

我正在努力与我的网页。 JavaScript没有做它应该做的事情,因为变量[]没有被填充!请考虑我的代码:JavaScript变量仍然未定义

var datasets = { "DataItem1": { 
label: "Idle Count", 
dataSeries: [[13, 75.72],[13, 1],[13, 0.17],[13, 55.72],[13, 90.72],[13, 91.06]], 
Threshold_0: [[134, 1],[133, 1]], 
Threshold_2: [[133, 1],[131, 1]] 
} 
}; 

var data = []; 
var failedData = []; 

data.push(datasets['DataItem1']['dataSeries']); 
failedData.push(datasets['DataItem1']['Threshold_0']['Threshold_2']); 

}); 

的问题是与

failedData.push(datasets['DataItem1']['Threshold_0']['Threshold_2']); 

使用Firebug的观察窗口,我可以看到failedData是不确定的,当我在这一点上添加一个突破。因此,我将鼠标悬停在该行的数组项上,并且Threshold_0具有数据,但Threshold_2不(Threshold_2未定义)。

在监视窗口中,我可以看到数据集[]已按预期创建了所有对象。

我看不出为什么,我很卡住。

+0

尝试将Threshold_X放在单引号之间,以使它们被命名为属性。 –

+3

cuz'datasets ['DataItem1'] ['Threshold_0'] ['Threshold_2']'未定义'我想你正在寻找'datasets ['DataItem1'] ['Threshold_2']' –

回答

2

这里你正在试图通过Threshold_0访问属性Threshold_2,你应该得到它通过DataItem1

failedData.push(datasets['DataItem1']['Threshold_0']['Threshold_2']); 

变为

failedData.push(datasets['DataItem1']['Threshold_2']); 
+0

是的,我现在看到。因此,我的最终代码是'failedData.push(datasets ['DataItem1'] ['Threshold_0'],数据集['DataItem1'] ['Threshold_2']);' – MyDaftQuestions

1

以下属性有一个值:

datasets['DataItem1']['Threshold_0'][0] == [134, 1] 
datasets['DataItem1']['Threshold_0'][1] == [133, 1] 

我不确定你真正想要做什么。也许这就是你打算做的事情?

failedData.push(datasets['DataItem1']['Threshold_0']); 
failedData.push(datasets['DataItem1']['Threshold_2']); 

否则,请说明您想要在failedData中结束的值。

0

你在最后有一个错字。删除最后一个});