Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-使用数组_Javascript_Jquery - Fatal编程技术网

Javascript jQuery-使用数组

Javascript jQuery-使用数组,javascript,jquery,Javascript,Jquery,好的,我修复了DIV和all的最后一个错误 好的,在我的javascript文件的最顶端。。。我有 $(function() { var games = new Array(); // games array }); 然后在一个新函数中,我有:var gamesLgth=games.length 但是当我运行它时,我得到了这样一个结果:uncaughtreferenceerror:games没有定义 当我因为一开始就初始化它而感到奇怪时…游戏超出了范围。您需要将其存储在其他函数可以访

好的,我修复了DIV和all的最后一个错误

好的,在我的
javascript
文件的最顶端。。。我有

$(function() {
     var games = new Array(); // games array
});
然后在一个新函数中,我有:
var gamesLgth=games.length

但是当我运行它时,我得到了这样一个结果:
uncaughtreferenceerror:games没有定义


当我因为一开始就初始化它而感到奇怪时…

游戏
超出了范围。您需要将其存储在其他函数可以访问的地方

例如,这将使变量成为全局变量

var games;
$(function() {
    games = new Array(); // games array
});

$(function() {
   var gamesLgth = games.length;
   console.log(gamesLgth);
});

您将其初始化为单独函数的局部变量。您需要将其设置为全局变量,或者将其作为参数从一个函数传递到另一个函数才能访问它。

通过在
函数中声明该变量,您已经将该变量的作用域限定到该函数,这意味着该变量
games
仅在该函数中可用

$(function() {
     var games = new Array(); // games array

     ...


     var gamesLength = games.length; // works fine
});
但以下示例不会:

$(function() {
     var games = new Array(); // games array
});

$(function() {
     var gamesLength = games.length; // won't work - im in a different scope
});
试试这个

var games = [];
而不是

var games = new Array();

同时也要确定游戏的范围。

我将继续为您编写代码:

var games;
$(function(){
   games = new Array();
   ...
});
$(function(){
  games.length; // Which would be zero
});

您在函数作用域中初始化了“games”,它在$(function(){…})的边界之外不可用

“然后在一个新的功能中我有……”这可能就是问题所在;当您使用
var
定义变量时,该变量将仅对当前函数可用。参见此项:请显示包含新函数的代码。参见此项:您可以仅使用两个字符创建新数组:
var games=[]。两者都是等效的,但你在范围方面是对的:)是的,但我不希望游戏阵列再次成为新的。当然!我记得在Java中使用了全局变量之类的东西。它又回来了。!非常感谢。我得到了它。我得到了它。谢谢你,先生。