Столкнулся с неожиданной проблемой при работе с массивами в JavaScript. Пытаюсь добавить несколько объектов в массив, но почему-то всегда остается только один - последний добавленный. Вот пример кода:
let myArray = [];
function addObject(name, age) {
let person = { name: name, age: age };
myArray.push(person);
}
addObject('Иван', 25);
addObject('Мария', 30);
addObject('Петр', 35);
console.log(myArray);
Ожидаю увидеть массив с тремя объектами, но выводится только один. Что я делаю не так? Может, проблема в области видимости или я неправильно использую метод push? Буду благодарен за любые подсказки!
Хмм, странно, твой код выглядит вполне нормально. У меня такой код работает как надо - добавляет все три объекта в массив. Может быть, проблема где-то в другом месте?
Попробуй добавить console.log() после каждого вызова addObject(), чтобы посмотреть, что происходит на каждом шаге. Еще можно попробовать использовать метод concat() вместо push() - типа myArray = myArray.concat(person).
А еще проверь, нет ли где-то в коде случайной перезаписи myArray. иногда такое бывает, особенно если переменная глобальная.
Проверил код – вроде логика норм. Возможно, проблема в другом участке, где массив перезаписывается. Пробовал ли ты выводить массив после каждого добавления? Интересно, а были ли у тебя аналогичные операции в других частях кода? Возможно, полный скрипт поможет разобраться.
Код вроде нормальный, должен работать. Может, ты где-то случайно перезаписываешь myArray или очищаешь его? Попробуй добавить console.log после каждого addObject, чтобы увидеть, что реально происходит. Еще вариант - используй const вместо let для myArray, чтобы случайно не переопределить. И проверь, нет ли глобальной переменной с таким же именем, которая конфликтует. Если не поможет - кидай больше кода, посмотрим.