JavaScript变量仍未定义

时间:2014-01-30 11:24:46

标签: 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未定义)。

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

我看不清楚为什么而且我很困难。

3 个答案:

答案 0 :(得分:2)

在这里,您尝试通过Threshold_2访问媒体资源Threshold_0,您应该通过DataItem1

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

<强>变为

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

答案 1 :(得分:1)

以下属性 do 具有值:

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中找到的值。

答案 2 :(得分:0)

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