2014-01-30 76 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

你在最後有一個錯字。刪除最後一個});