开发者问题收集

javascript:无法读取未定义的属性“push”

2017-05-23
6434

我试图用用户指定的元素数量填充一个数组。我使用提示窗口执行此操作。 但是,代码没有执行,我在第 9 行收到错误,告诉我:

未捕获的 TypeError:无法读取 fillArrayWithNumberOfElements(第 9 行)中未定义的属性“push”。

我在网上搜索答案,但他们都指出数组没有正确声明,而我很确定我的数组声明正确。

任何帮助都值得感激,提前致谢!

var emptyArray = [];

function askInput() {
    return (prompt("Please enter a number: "));
}

function fillArrayWithANumberOfElements(array, numberOfElements){
    for(var i = 0; i < numberOfElements; i++){
        array[i].push(askInput());
    }
    return array;
}

fillArrayWithANumberOfElements(emptyArray, 5);
2个回答

fillArrayWithANumberOfElements 中, array 是数组,而不是 array[i] 。因此,要推送,只需使用

array.push(askInput());

而不是

// Not this
array[i].push(askInput());

或者,如果您愿意,可以使用赋值:

array[i] = askInput();
T.J. Crowder
2017-05-23

push 是附加到 array 类型原型的函数。您正在访问数组中的特定元素。

christopher
2017-05-23