Objetivo: Crea una web que pida, por medio de un prompt()
, el número de una tarjeta de crédito y confirme su validez según el algoritmo de Luhn. El código debe estar compuesto de una función llamada isValidCard
, y el usuario no debe poder ingresar un campo vacío.
- Crear función que en la que el usuario ingrese su número de tarjeta de crédito mediante un
prompt()
. - El mensaje se validará para verificar que no es un campo vacío, de serlo se le indicará al usuario que indique un valor válido.
- Una vez validado el mensaje, se comenzará la comprobación mediante el algoritmo de Luhn
function isValidCard
-
El número de tarjeta de crédito se almacena en la
var cardNumber
, a través de unprompt()
-
Se crea una nueva
var
, llamadaarrCardNumber
, en donde se almacenarán cada nuevo número de la tarjeta, de manera separada en un array. -
Se creará una nueva
var
, llamadaarrNumbersInOddPositions
, donde se almacenarán los números en posiciones impares -
Se creará una nueva
var
, llamadaarrNumbersInEvenPositions
, donde se almacenarán los números en posiciones pares -
A
arrCardNumber
se le aplicará.reverse
para invertir el orden de los números -
Mediante un
for
se recorrerá cada número, comenzando desdei = 1
y realizando incrementos de 2 hasta que el número sea menor aarrCardNumber.length
-
Se validará si los números son pares mediante el uso de módulo
% 2
, esperando que el resultado sea cero -
Si el resultado es igual a cero, se agregará ese índice a
arrNumbersInEvenPositions
usando.push()
-
Mediante el uso de un nuevo
for
, se recorrerá cada número, comenzando desdei = 0
y realizando incrementos de 2 hasta que el número sea menor aarrCardNumber.length
-
Se validará si los números son impares mediante el uso del módulo
% 2
, esperando que el resultado sea distinto a cero -
Si el resultado es distinto a cero, se agregará ese índice a
arrNumbersInOddPositions
usando.push()
-
Los números en posiciones pares serán multiplicados por 2
-
Si el resultado de la multiplicación por dos es un número de 2 dígitos, cada dígito se sumará (Ej. 21 = 2 + 1)
-
La suma de los números en
arrNumbersInEvenPositions
se sumará a la suma de los números enarrNumbersInOddPositions
-
Al resultado de la suma se le aplicará
% 10
-
Si el resultado de
% 10
es cero, se le indicará al usuario mediante unalert()
que el número de tarjeta ingresado es válido -
Si el resultado de
% 10
es distinto a cero, se le indicará al usuario mediante unalert()
que el número de tarjeta ingresado es inválido