为什么'datas'数组总是空的?

时间:2017-12-05 10:38:29

标签: javascript massive

我的代码

 $.getJSON('/load4',
    function (data) {
        for (var i = 0; i < data.length; i++) {
            var counter = data[i];
            datas.push([counter.Id, counter.login.substr(0, 25),'3', counter.hash , 'MA']); 
        }
    });
console.log("Datas " + datas);

我正在尝试像[[a,b],[a,c]]那样填充我的数组,但不能。

datas[i] = [counter.Id, counter.login.substr(0, 25),'3', counter.hash , 'MA'];

也行不通。

3 个答案:

答案 0 :(得分:0)

您必须将console.log放在function而不是外面。

$.getJSON('/load4',
  function(data) {
    var datas = [];
    for (var i = 0; i < data.length; i++) {
      var counter = data[i];
      datas.push([counter.Id, counter.login.substr(0, 25), '3', counter.hash, 'MA']);
    }
    console.log("Datas " + datas);
  });

答案 1 :(得分:0)

那是因为您正在加载JSON 异步。这意味着log在回调函数作为参数传递给getJSON之前运行

答案 2 :(得分:-1)

您必须先创建一个可变数据。

 var datas =[];   
 $.getJSON('/load4',
        function (data) {
            for (var i = 0; i < data.length; i++) {
                var counter = data[i];
                datas.push([counter.Id, counter.login.substr(0, 25),'3', counter.hash , 'MA']); 
            }
        });
console.log("Datas " + datas);