【问题标题】:Uncaught TypeError: Cannot read property '0' of undefined未捕获的类型错误:无法读取未定义的属性“0”
【发布时间】:2015-02-07 03:52:58
【问题描述】:

我有一个项目来显示美国最大的 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 arrays function for-loop


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢...忘记了。它使用的 PHP .作为串联对吧?!
    【解决方案2】:

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

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

    【讨论】:

    • 谢谢你,非常感谢。我编辑了我的原始问题,向您展示我更新的代码,看看是否有更好的方法来执行此操作,更具体地显示函数并将其写入文档@Aweary
    猜你喜欢
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2014-05-15
    相关资源
    最近更新 更多