定义字符串数组

时间:2014-02-19 19:02:52

标签: javascript

嗨,我是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>

我只是得到一个空的下拉列表

1 个答案:

答案 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的最后一个元素,则可以/应该使用natArraynatArray[natArray.length - 1]说明了Javascript数组的零索引性质。如果-1的长度为natArray,您将无法访问20,因为此声明实际上是在尝试访问第21个元素,而不是第20个元素。