Uncaught TypeError: Cannot read property '0' of undefined

Uncaught TypeError: Cannot read property '0' of undefined

我有一个项目显示美国 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>

JavaScript 中的串联使用 +,而不是 .。试试 +.

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

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

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