繁体   English   中英

数组:未捕获的类型错误:无法读取未定义的属性“推送”

[英]Array: Uncaught TypeError: Cannot read property 'push' of undefined

我正在编写这个程序并检查了其他类似的帖子。 但我很难理解如何解决这个问题?

这是 html

<body>
<h1>Hello!</h1> Please input start and end of your numbers
<input type="text" id="start" value="1" />
<input type="text" id="end" value="10" />
<button id="btn" onclick="MyFunc(document.getElementById('start').value, document.getElementById('end').value)">Click Me</button>

这是JS脚本:

function MyFunc(start, end) {
    for(i=start;i<end;i++)
    {
        var arr = [];
        arr[i].push;
        document.getElementById("demo").innerHTML = arr[i]);
    }
}

我想从用户输入的第一个和最后一个值构造一个数组序列,然后显示数组/执行一些计算。 我已经查看了 Stack 上的其他答案,但无法弄清楚这有什么问题。

谢谢你。

您正在声明一个空数组var arr = [] 在那之后,您正在访问其内容,因此可以肯定它没有任何内容,因此arr[i]undefined

我想你想做的是

function MyFunc(start, end) {
    document.getElementById("demo").innerHTML = "";
    var str = "";
    for(i = start; i <= end; i++) {
        str += i;
    }

    document.getElementById("demo").innerHTML = str;
}

JSFiddle 演示

改变

var arr= [];

var arr= new Array(size); // size 需要是一个整数值。

还要在for loop之前声明数组

在从数组中添加/删除元素之前,您始终必须初始化数组。 由于未定义arr数组,因此您会收到TypeError

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM