Ejercicio 6

Hola estoy aprendiendo a programar en js y realice el ejercicio numero 6 de estructuras de flujo y tengo un consulta.

el ejercicio lo resolvi pero es diferente al resultado que ustedes tiene, en cierta parte no se si como lo hice es correcto, es decir, en la operacion para compara la letra, debo resolverlo dentro de una variable primero y no dentro del condicionante,¿ es así la forma correcta? aqui pongo mi codigo y tambien su respuesta para que lo puedan ver:

var letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E', 'T'];

var ci = prompt("Ingrese su Ci"); var letrauser = prompt("Ingrese su letra"); letrauser = letrauser.toUpperCase();

if (ci<=0 || ci>=9999999999){ alert("El nuemero no es valido"); }else{ var posicion = ci % 23;

if (letras[posicion] == letrauser){
    alert("La letra y numero es correcto");
}else{
    alert("la letra no es correcta");
}

}

// codigo librosweb

var letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E', 'T'];

var numero = prompt("Introduce tu número de DNI (sin la letra)"); var letra = prompt("Introduce la letra de tu DNI (en mayúsculas)"); letra = letra.toUpperCase();

if(numero < 0 || numero > 99999999) { alert("El número proporcionado no es válido"); } else { var letraCalculada = letras[numero % 23]; // es necesario que este resultado se guarde aqui primero?

if(letraCalculada != letra) { alert("La letra o el número proporcionados no son correctos"); } else { alert("El número de DNI y su letra son correctos"); } }