Estoy tratando de imprimir los valores de las posiciones impares en la matriz a continuación, pero se saltó 7, ¿qué podría estar mal, por favor?
const valid1 = [4, 5, 3, 9, 6, 7, 7, 9, 0, 8, 0, 1, 6, 8, 0, 8]; const validateCred = (serialDigits)=>{ //let sum = 0; for (let i = serialDigits.length - 1; i >= 0; i--){ let currentDigit = serialDigits[i]; if( serialDigits.indexOf(currentDigit) % 2 === 1){ console.log(currentDigit) }; } } console.log(validateCred(valid1)); // 0 6 0 0 6 3 4Este:
if( serialDigits.indexOf(currentDigit) % 2 === 1){No es una buena línea porque indexOf encuentra la primera aparición en la matriz, por lo tanto, no satisface su necesidad. solo usa la variable i en su lugar:
if (i % 2 === 1) {De manera similar, si desea imprimir los índices pares, puede usar este código:
const valid1 = [4, 5, 3, 9, 6, 7, 7, 9, 0, 8, 0, 1, 6, 8, 0, 8]; const validateCred = (serialDigits) => { //let sum = 0; for (let i = serialDigits.length - 1; i >= 0; i--) { let currentDigit = serialDigits[i]; if (i % 2 === 0) { console.log(currentDigit); }; } } validateCred(valid1); // 0 6 0 0 7 6 3 4