Javascript 为什么日志会这样说;无法读取未定义的属性“push”;

Javascript 为什么日志会这样说;无法读取未定义的属性“push”;,javascript,Javascript,我马上要做一个演示,我想我会把我的笔记本电脑弄坏的 我有一个完美的工作代码,不做任何更改就得到了这个信息 这是我得到错误的代码片段 var array = []; for (let i = 0; i < customerDetails.length; i++){ array[i].push(customerDetails[i].name); } var数组=[]; for(设i=0;i

我马上要做一个演示,我想我会把我的笔记本电脑弄坏的

我有一个完美的工作代码,不做任何更改就得到了这个信息

这是我得到错误的代码片段

 var array = [];
    for (let i = 0; i < customerDetails.length; i++){
            array[i].push(customerDetails[i].name);
    }
var数组=[];
for(设i=0;i
顺便说一句,customerDetails是一个对象数组,即[{},{},{}]

数组是如何定义的?最初,我将数组定义放在另一个地方(在函数外部,所以它工作正常,我将它移到那里只是为了测试)

要么我太累了,看不见它,要么是有另一个问题导致了它?这个错误本身对我来说没有意义

编辑: 我把下面的答案放在这里,这里不应该有数组[I].push,而应该是array.push 虽然我没有改变这一点,但我仍然应该看到它。
感谢这个社区的帮助,你真的很棒

push()
是一个与
数组相关的函数。您正在使用无效且不存在的
array[i].push()
将值推送到数组的元素。使用
array.Push()

var数组=[];
for(设i=0;i
使用array.push而不是array[i].push

var array = [];
for (let i = 0; i < customerDetails.length; i++){
        array.push(customerDetails[i].name); // no need give array index while pushing data
}
var数组=[];
for(设i=0;i
var数组=[];
for(设i=0;i

您不能使用
array[i].push()
,因为它引用数组中的单个元素,而不是数组本身。

Wht array[i].push,数组中有数组或者什么?您从来没有定义
array[i]
,所以您不能
推送它,它不是一个数组array@AwadMaharoof-可能不会,鉴于
array.length
0
,因此循环体将永远不会运行。为什么不干脆
array=customerDetails.map({name})=>name)
?如果您有数组,并且希望在该数组中推送对象,则不应该写入数组[i]。推送()-您应该写入数组。推送()数组[i].push将在有数组的情况下使用。“您正在将值推送到数组的某个元素…这是无效的”。。。在这种情况下。如果
array=[[]]
,则
array[0]。推送(…)
将完全有效。@vaggour乐意提供帮助
var array = [];
for (let i = 0; i < customerDetails.length; i++){
        array.push(customerDetails[i].name); // no need give array index while pushing data
}
var array = [];
    for (let i = 0; i < customerDetails.length; i++){
            array.push(customerDetails[i].name);
    }