js noob aquí: estoy tratando de contar la cantidad de entradas que tienen un valor de un número calculado de ellas. El código que se me ocurrió tratando de lograr eso es el siguiente:
var fields = document.querySelectorAll('[id^=example-]'), count = 0; for (var z = 0; z <= fields.length; z++) { if (fields[z].value != "") { count = count + 1; } console.log('count is: ' + count); }Contexto: hay 3 entradas en total y el código anterior se ejecuta en un evento de clic.
Ahora, la primera vez, esto obviamente funciona bien si, por ejemplo, establezco el valor de la primera entrada de las tres y devuelve [1]. La segunda vez que actualizo el valor del mismo campo, el contador vuelve a aumentar (lógicamente).
Ahora, lo que me gustaría lograr es verificar las tres entradas en el momento en que se dispara el evento y contar cuántas de ellas tienen un valor (y no aumentar el contador aún más si ya se cuentan con un valor en el evento de disparo anterior ).
Cualquier ayuda sería muy apreciada. ¡Gracias!
Corto
const count = [...document.querySelectorAll('[id^=example-]')] .filter(fld => fld.value.trim() !== "") .length