未捕获的TypeError:无法读取未定义的属性“0”

时间:2015-02-07 03:52:58

标签: javascript arrays function for-loop

我有一个项目来显示美国最大的7个州,将每个州存储在一个变量中并使用javascript在页面上显示。

我的新代码如下所示:

    <script>
var states = ["Alaska", "Texas", "California", "Montana", "New Mexico", "Arizona", "Nevada"];
var miles = [663267, 268581, 163696, 147042, 121589, 113998, 110561];
var index= "";
text="";
function listStates() {
    for (index=0; index < states.length; index++) {
            text += "<tr><td>" + states[index] ;    
            text += "</td><td>" + miles[index] ;
            text += "</td></tr>";
    }
    return text;
}
</script>

我用这个显示它

<section id="table">
<table width="307" height="45">
<tr><th width="40">Name</th><th width="65">Size</th></tr>
<script>
<!--
    var result = listStates();
    document.write(result);
//-->
</script>
</table>

2 个答案:

答案 0 :(得分:1)

JavaScript中的连接使用+,而非.。试试+

您当前使用.的代码会尝试从字符串对象states中查找名为undefined的属性。现在代码将找到一个名为&#39; 0&#39;来自undefined,它会失败,因为undefined不能拥有任何属性。

答案 1 :(得分:0)

Javascript使用+进行字符串连接,而不是.。 您还会在每个循环开始时重新分配text变量,因此您只会在返回最后一个值时获得最后一个结果。

"<tr><td>Nevada</td><td>110561</td></tr>"