所有源代码在这里可用:只需查看页面源代码。一半的代码在那个页面上,另一半在'sourcesDepot.js'文件中,该文件在源代码中被链接并且也应该是可见的。JavaScript奇怪的数组范围问题
只有几件事情:这显然仍然是一项正在进行的工作。编码时我非常混乱,而且我倾向于跳跃,做一点这个和一点点。所以这有点麻烦。也是背景。我们会假装不存在,好吗?
所以,现在,就这个问题!看来我无法访问任何函数中的数组。
目前,我一直在测试的方式是通过修改我的主要功能(称为weTalkNow(输入))。这是位于viceDepot.js。我将它设置为返回我测试的任何值,以查看它们的设置。这些值将打印在我的聊天框中。所以我使用它像console.log()。目前它设置为返回用户输入的长度,但这完全不相关。
_inputArray通过取所述用户输入(字符串)和空间上分裂它填充。它在页面顶部声明。这一切都很好,很棒。
出现问题的地方是数组是手动填充的。
var x = [ [1,2], [3,4] ];
/* Main Function */
function weTalkNow(){
return x[0][0];
}
这段代码,据我所知,应该输出1.但它没有。当代码修改为此时,它工作正常:
/* Main Function */
function weTalkNow(){
var x = [ [1,2], [3,4] ];
return x[0][0];
}
但是,这不是很有帮助。我需要一个全局数组,而不是本地数组。
是什么让事情非常奇怪的是,如果我决定我的主网页(带有HTML和东西)上宣布
var x = [ [1,2], [3,4] ];
,然后在deputyDepot做到这一点
/* Main Function */
function weTalkNow(){
return x[0][0];
}
.js文件,它工作正常。所以突然间,如果我在不同的页面上声明一个全局数组,它可以正常工作。
请让我知道,如果我能以任何方式澄清任何问题。我试图给我所有的信息,我可以。随机提示也是受欢迎的,但我主要只关注这一点。
再次,只是让我明白:不管是什么原因,我不能,如果我填充它们手动使用数组(我想这是主题相关的问题)。 _inputArray做的很好,所以数组工作正常。这是唯一的全球阵列。但它不是手动填充,而是通过拆分功能。我似乎无法创建一个可由函数访问的全局数组。
编辑:
好的,我发现了问题!我写的所有代码都能正常工作,就像它应该的那样。问题是在我的.js文件的最顶部是一个破碎的函数。这第一行阻止了它下面的所有代码运行,所以我的数组从未被初始化。为此,我无法访问它们。
一旦我检查了Web控制台,我就可以修复所有问题。发布此问题之前,我不知道有一个Web控制台。
您的页面有JavaScript错误。先解决这些问题。 –
@ user1689607小心一点? –
我的意思是当我加载页面时在控制台中显示错误。你有浏览器的开发者控制台吗? –