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

时间:2015-06-18 07:30:40

标签: javascript arrays

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

这是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的其他答案,但无法理清这个问题。

谢谢。

2 个答案:

答案 0 :(得分:2)

您正在声明一个空数组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 Demo

答案 1 :(得分:-3)

更改

var arr= [];

var arr= new Array(size); // size必须是整数值。

同样在for loop

之前声明数组

在添加/删除元素之前,您始终必须初始化数组。由于未定义arr数组,因此您获得了TypeError