Ваш код практически рабочий и он сразу заработает, если вы поправите всего одну очень важную деталь. Дело в том, что внутри вашего метода getArr имеется изолированный контекст…
Догадались к чему я клоню? Если нет, то давайте подумаем как может что-то сохраняться за пределами этой изоляции. Нам надо чтобы контейнер для сохранения, то есть ваш массив оказался на верхнем уровне. То есть, все что вам надо поправить в вашем коде - это переместить строку "let arr = [];" за пределы метода.
let arr = [];
function getArr() {
let inputAll = Array.from(document.querySelectorAll('#forms input'));
let obj = {};
let checkFieldsLength = inputAll.every((el) => el.value.length);
if (checkFieldsLength) {
for (const input of inputAll) {
obj[input.id] = input.value;
}
arr.push(obj);
return console.log(arr);
}
return alert('Не все поля заполнены');
}
Вот и все. Теперь все должно работать как надо, проверяйте.