Tengo una lista desplegable de números que tengo la intención de usar para realizar un seguimiento de mis millas. Quiero agregar el texto 'millas' después del número pero si el número es 1, quiero agregar 'milla'.
unidad = millas | matrizDeMatrices = [0, 1, 2, 3, 4, 5, 6, 7, 8]
Aquí está mi guión
function showQtyNumbers(el, arrayOfArrays, unit) { alert(arrayOfArrays); el.innerHTML = ''; arrayOfArrays.forEach(function(r) { var option = document.createElement('option'); option.setAttribute('value', r); option.text = r + ' ' + unit; el.appendChild(option); }); }Eso me da los resultados: 0 millas, 1 millas, 2 millas, etc.
He intentado lo siguiente pero no funciona.
function showQtyNumbers(el, arrayOfArrays, unit) { number1 = arrayOfArrays.find(e => e === 1) el.innerHTML = ''; arrayOfArrays.forEach(function(r) { var option = document.createElement('option'); if (r.find(e => e === 1)) { r + unit.substring(0, unit.length - 1) } else { option.text = r + unit; }; option.setAttribute('value', r); el.appendChild(option); }); } Sé que arrayOfArrays.find(e => e === 1) encuentra 1 pero no sé cómo hacerlo en forEach.
¿Por qué no pasa el valor de la unidad a la función como singular y agrega una 's' si el valor no es 1? Como esto:
if(r!=1){ option.text = r + unit +"s"; }else{ option.text = r + unit; }