Добро пожаловать в StackOverflow, лучшее сообщество в мире!
Я понимаю, что вы новичок в JS, и это именно то, чем я был, когда начинал как веб-разработчик. Ваш сценарий может быть реорганизован наверняка путем создания функции для инициализированного элемента, а не для создания каждого отдельного элемента. Вы можете просто использовать для l oop, чтобы сделать это. Пожалуйста, посмотрите мой быстрый рефакторинговый код
<div id="formulario1">
<label class="elemento">#Manzanas<input type="checkbox" id="elem1"><input type="number" id="val1"></label>
<label class="elemento">#Bananas<input type="checkbox" id="elem2"><input type="number" id="val2"></label>
<label class="elemento">#Peras<input type="checkbox" id="elem3"><input type="number" id="val3"></label>
<label class="elemento">#Naranjas<input type="checkbox" id="elem4"><input type="number" id="val4"></label>
</div>
<button id="enviar">enviar</button>
<script>
const a = document.getElementById("formulario1");
//Old code
// var arr = [
// elem1 = {
// check: document.getElementById("elem1").checked,
// value: document.getElementById("val1").value,
// },
// elem2 = {
// check: document.getElementById("elem2").checked,
// value: document.getElementById("val2").value,
// },
// elem3 = {
// check: document.getElementById("elem3").checked,
// value: document.getElementById("val3").value,
// },
// elem4 = {
// check: document.getElementById("elem4").checked,
// value: document.getElementById("val4").value,
// }
// ];
//=========================
//refactored version
var arr = [];
for (var i = 0; i < 4; i++) {
arr.push(createElem(i + 1));
}
const boton = document.getElementById("enviar");
//old code
// boton.addEventListener("click", function() {
// console.log(arr[0]);
// console.log(arr[1]);
// console.log(arr[2]);
// console.log(arr[3]);
// var arr_json = (JSON.stringify(arr));
// console.log(arr_json);
// });
//refactored version
boton.addEventListener("click", function() {
for(var i=0; i<arr.length; i++){
console.log(arr[i]);
}
var arr_json = (JSON.stringify(arr));
console.log(arr_json);
});
// new function to create Element
function createElem(index) {
const elem = {
check: document.getElementById(i).checked,
value: document.getElementById(i).value,
}
return elem;
}
</script>
или запускаемую версию на https://jsfiddle.net/x40whk5d/2/
Есть и другие вещи, которые можно улучшить, но я верю, что вы легко можете найти их сами когда у вас будет более глубокое понимание позже. Я уже закомментировал ваш код и добавил свой новый код, чтобы помочь вам лучше видеть. Спасибо и удачи!