无法在JavaScript中访问全局数组

时间:2013-01-28 12:05:36

标签: javascript

我有一个全局变量说:

var series,hours;
var loadData = function(){
series = [[]];
hours = [];
d3.json("data/radar.json", function(error, data) {

    data.QualitySummaryObject.forEach(function(d,i) {
        series[i] = d.extractPercentage;
        hours[i] = d.extractorName;
  });


});  
console.log(hours);
};

现在,如果我尝试访问此console.log,它的工作正常,但是。

var print = function(){
    console.log(hours); //here its not working no value in hours why ... ?
}

2 个答案:

答案 0 :(得分:2)

确保hours是全球性的:

window.hours = [];

然后你可以在任何地方登录:

console.log(window.hours);

直接使用var而不声明会避免上下文问题。

答案 1 :(得分:0)

如果您在函数中运行上述代码,则变量hours 不是全局变量,因为您之前使用var声明了它。

如果要将变量声明为全局变量,而不是:

var hours = [];

这样做:

hours = [];

要声明一个全局变量,您只需为它命名即可。