У меня скоро презентация, и я думаю, что сломаю свой ноутбук.
У меня был этот прекрасно работающий код, и ничего не меняя, я получаю это сообщение.
Вот кусок кода, где я получаю ошибку
var array = [];
for (let i = 0; i < customerDetails.length; i++){
array[i].push(customerDetails[i].name);
}
Кстати, customerDetails — это массив объектов, т.е. [{}, {}, {}]
Как, черт возьми, массив НЕ определен? Первоначально у меня было определение массива в другом месте (вне функции, поэтому оно работало нормально, и я переместил его прямо туда, чтобы проверить).
Либо я слишком устал и не вижу этого, либо есть другая проблема, которая на самом деле приводит к этому? сама ошибка мне непонятна.
Обновлено: Я помещаю ответ снизу здесь, не должно быть array[i].push, а вместо этого array.push Хотя я не изменил это, я все равно должен это видеть. Спасибо этому сообществу за помощь, вы действительно молодцы!
Вы никогда не определяете array[i], поэтому вы не можете push к нему, это не массив
@AwadMaharoof - Вероятно, нет, учитывая, что array.length есть 0, и поэтому тело цикла hte никогда не запустится.
Почему бы не просто array = customerDetails.map(({ name }) => name)?
Если у вас есть массив и вы хотите поместить объект внутрь этого массива, вам не следует писать array[i].push() — вы должны написать array.push() array[i].push будет использовать, если у вас есть массив массивы.
Спасибо всем, ребята, действительно что-то было изменено другим человеком, и я не мог этого видеть, потому что я не спал несколько часов. Спасибо!!!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


push() — это функция, связанная с array. Вы помещаете значение в элемент массива, используя array[i].push(), который недействителен и отсутствует. Нажмите прямо на array с помощью array.push()
var array = [];
for (let i = 0; i < customerDetails.length; i++){
array.push(customerDetails[i].name);
}
"Вы помещаете значение в элемент массива... который недействителен"... в Это дело. Если array = [[]], то array[0].push(...) будет совершенно правильным.
@Vaggouras рад помочь
Используйте 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 array = [];
for (let i = 0; i < customerDetails.length; i++){
array.push(customerDetails[i].name);
}
Вы не можете использовать array[i].push(), потому что он ссылается на один элемент в массиве, а не на сам массив.
Wht array[i].push, внутри массива есть массив или что??