【问题标题】:Javascript array push is not workingJavascript数组推送不起作用
【发布时间】:2013-08-12 20:40:23
【问题描述】:

我不知道为什么这个数组推送不起作用......感谢任何帮助。

    var addons = new Array();

    myService.addon_dependencies(arr[i]['addoncode']).then(function(dependency) {
        console.log(dependency[0].addon_depend);  //returns A6002
        addons.push(dependency[0].addon_depend);
    });

    console.log(addons); //returns []   

【问题讨论】:

  • 你能创建一个 jsFiddle.net 的例子吗?

标签: javascript arrays angularjs


【解决方案1】:

这是因为 addon_dependencies 方法在您运行 console.log 之前没有完成。 then 方法表明您可能正在使用某种承诺框架。如果你在 then 块中打印出来,它应该可以工作。

【讨论】:

  • pushthen 块中,所以push 正在工作。第二个log 语句不是,所以log 语句在then 块完成之前发生。您的push 工作正常,只是您没有在正确的位置记录它。如果您将日志放在addons.push 之后,它将正确显示。
【解决方案2】:

Array.push 正在工作;您的代码必须异步执行,因此为空的addons

【讨论】:

    【解决方案3】:

    console.log(addons) 在项目被推入数组之前执行。所以你看到了空数组。 将新项目推送到其中后尝试 console.log。

    【讨论】:

      猜你喜欢
      • 2015-02-15
      • 2018-03-11
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多