如何在JavaScript中更新全局变量?

时间:2016-03-04 11:10:16

标签: javascript scope global-variables local-variables

我正在导入一些数据,我想在导入它们的函数之外使用这些数据。我尝试按照此答案(response1response2response3response4)和其他人的说明进行操作,但我仍然无法理解如何操作。在我最成功的尝试中,我尝试了1)创建一个全局变量,2)让函数返回数据本身(第二次尝试嵌入在下面的代码中,但注释掉了)。但是我仍然无法访问导入它们的函数范围之外的数据。任何帮助将不胜感激。下面是包含尝试和返回值的代码。非常感谢你!

    var dataset; // a global
    d3.json("data.php", function(error, jsonData) {
    //var dataset = d3.json("data.php", function(error, jsonData) {
         if (error) return console.warn(error);
         jsonData.forEach(function (d) {
             d['id'] = d['id'];
             d['transaction_id'] = +d['transaction_id'];
             d['ddmmyy'] = d3.time.format("%Y-%m-%d").parse(d['ddmmyy']);
             d['amount'] = +d['amount'];
        }) // end: dataset.forEach
        dataset = jsonData;
    //  return jsonData;
    }); // end: d3.json

    // return values for attempt 1 with var dataset; (...)
    console.log(dataset[0]); // returns: TypeError: dataset is undefined
    var expensesByName = d3.nest()
      .key(function(d) { return d['transaction_id']; })
      .entries(dataset); 
    // typing expensesByName on console returns: undefined 

    // return values for attempt 2 with: var dataset = d3.json(...)
    //console.log(dataset[0]); // returns: undefined
    // var expensesByName = d3.nest()
    //   .key(function(d) { return d['transaction_id']; })
    //   .entries(dataset); 
    // typing expensesByName on console returns: empty array

0 个答案:

没有答案