【发布时间】:2012-12-01 19:18:51
【问题描述】:
所有源代码都可以在这里找到:只需查看页面源代码。一半代码在该页面上,另一半在源代码中链接的“deputyDepot.js”文件中,也应该是可见的。
只是一些事情:这显然仍在进行中。我在编码时非常杂乱无章,我倾向于跳来跳去,做一些这个和那个。所以有点乱。还有背景。我们就假装它不存在,好吗?
那么现在,解决问题!我似乎无法在任何函数中访问数组。
目前,我一直在测试的方式是修改我的 main 函数(称为 weTalkNow(input))。它位于代理Depot.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];
}
但是,这不是很有帮助。我需要一个全局数组,而不是本地数组。
让事情真正奇怪的是,如果我决定声明
var x = [ [1,2], [3,4] ];
在我的主页(带有 HTML 和其他内容的页面)上,然后执行此操作
/* Main Function */
function weTalkNow(){
return x[0][0];
}
在代理Depot.js 文件中,它工作正常。突然间,如果我在不同的页面上声明一个全局数组,它就可以正常工作了。
如果我能以任何方式澄清任何观点,请告诉我。我试图提供我能提供的所有信息。也欢迎随机的小贴士,但我主要关注的是这个。
再次,我很清楚:无论出于何种原因,如果我手动填充它们,我将无法使用数组(我认为这与问题有关)。 _inputArray 工作正常,因此该数组可以正常工作。它是唯一这样做的全局数组。但它不是手动填充的,而是通过 split 函数填充的。我似乎无法创建一个可由函数访问的全局数组。
编辑:
好的,我找到了问题!我正在编写的所有代码都可以正常工作,就像它应该的那样。问题是我的 .js 文件的最顶部是一个损坏的函数。第一行阻止了它下面的所有代码运行,因此我的数组从一开始就没有被初始化。因此,我无法访问它们。
一旦我检查了网络控制台,我就能解决所有问题。在发布这个问题之前,我不知道有一个网络控制台。
【问题讨论】:
-
您的页面有 JavaScript 错误。先解决这些问题。
-
@user1689607 需要更具体一点吗?
-
我的意思是当我加载页面时控制台中显示错误。您是否打开了浏览器的开发者控制台?
-
哦。哦。谢谢你。这有助于解决问题。我也没有意识到有一个控制台。你帮了我很大的忙。
-
不客气。仅供参考,控制台有多种工具可用于在应用程序中进行故障排除,例如用于检查数据的
console.log(),以及可让您从断点开始逐步执行代码的调试器。
标签: javascript arrays scope