嗨,我是Javascript的初学者,有些奇怪的事情发生了。
我想在外部Javascript文件中创建一个全局String数组
var natArray = new Array(20);
但我的IDE(Webstorm 7)说我newArray是一个未解析的函数,我不能在为其创建的另一个函数中使用该数组(来源:Javascript控制台)
感谢您的时间和反馈。
编辑:代码的其余部分
function country(name){
for(i=0;i<20;i++)
natArray[i]=name;
document.write(natArray[i]);
}
在这里我称之为(html文件):
Country:
<select>
<script type="text/javascript">
country("RandomCountry1");
country("RandomCountry2");
</script>
</select>
我只是得到一个空的下拉列表
答案 0 :(得分:0)
我不确定您要完成什么,但document.write(natArray[i]);
返回undefined
的原因是您将i
泄漏到for(i=0;i<20;i++)
的全局范围内}。
此循环完成后,i
等于20
,即使超出循环范围(为避免这种情况,请尝试for(var i=0;i<20;i++)
。虽然natArray
有.length
的{{1}},数组元素为零索引,这意味着它们从0开始计数,而不是1.
因此,如果您要尝试访问20
的最后一个元素,则可以/应该使用natArray
。 natArray[natArray.length - 1]
说明了Javascript数组的零索引性质。如果-1
的长度为natArray
,您将无法访问20
,因为此声明实际上是在尝试访问第21个元素,而不是第20个元素。