diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c2095a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.eslintrc diff --git a/README.md b/README.md index b5bbef1..8b13789 100644 --- a/README.md +++ b/README.md @@ -1,38 +1 @@ -# Tarjeta de crédito válida -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](https://es.wikipedia.org/wiki/Algoritmo_de_Luhn). -Lee este blog que explica [cómo funciona el algoritmo de Luhn](http://www.quobit.mx/asi-funciona-el-algoritmo-de-luhn-para-generar-numeros-de-tarjetas-de-credito.html). - -## Entregables - -Para cada producto debes entregar **un repositorio de GitHub** que -contenga: -1. Archivo `README.md` que explique el **pseudocódigo** de tu solución y su -**diagrama de flujo** -2. Archivo `app.js` con el **código** de tu solución -3. Archivo `index.html` vinculado con tu `app.js` - -## Tips - -A continuación un video de Michelle que te lleva a través del algoritmo de -Luhn y te da tips para completar este proyecto: - -[](https://www.youtube.com/watch?v=f0zL6Ot9y_w) - -## Consideraciones específicas - -1. Tu código debe estar compuesto por 1 función: `isValidCard` -2. El usuario no debe poder ingresar un campo vacío - -## Criterios de evaluación - -Se tomarán en cuenta las siguientes consideraciones a la hora de evaluar tu solución: - -1. Nombramiento de variables -2. Indentación -3. Validación de input: el usuario no debe poder ingresar un campo vacío o de tipo que no corresponda -4. Estructura de tus archivos -5. Archivo `README.md` correctamente redactado -6. Uso de comentarios para hacer tu código más legible -7. Que el programa cumpla con el propósito requerido diff --git a/app.js b/app.js new file mode 100644 index 0000000..c67d561 --- /dev/null +++ b/app.js @@ -0,0 +1,62 @@ +var cardNumber = prompt('INGRESE SU NUMERO DE TARJETA'); // creammos la variable donde se almacena el numero de la tarjeta +var array = []; // pasar los elementos de la tarjeta a un array +for (i = 0; i < cardNumber.length; i++) { + array.push(cardNumber[i]); +} + +for (j = 0; j < array.length; j++) {// invertir los elementos del array + var item = array.pop(); + array.splice(j, 0, item); +} +var newArray = []; // variable donde se almacenara los numeros +for (k = 0; k < array.length; k++) { + newArray.push(parseInt(array[k])); +} +var newArray = []; // variable donde se almacenara los numeros de uno en uno //4088521938925895 +for (k = 0; k < array.length; k++) { + newArray.push(parseInt(array[k])); // newArray[5, 9, 8, 5, 2, 9, 8, 3, 9, 1, 2, 5, 8, 8, 0, 4] +} +// separando numeros pares de impares +var pair = []; // numeros pares +var impair = 0; // numeros impares // 47 +for (m = 0; m < newArray.length; m++) { + if ([m + 1] % 2 === '0') { + pair.push((newArray[m]) * 2); + } else if ([m + 1] % 2 !== 0) { + impair += newArray[m]; + } +} +// separando los numeros pares = o mayores que 10 +var smallNumbers = 0; // numeros menores que 10 +var bigNumbers = []; // numeros mayores que 10 +for (p = 0; p < pair.length; p++) { + if (pair[p] <= 10) { + smallNumbers += (pair[p]); + } else { + bigNumbers.push(pair[p]); // [ 10, 18 ] + } +} + +var joinedNumbers = bigNumbers.join(''); // 1018 +var numberSeparated = joinedNumbers.split(''); // [ '1', '0', '1', '8' ] + +var arrayNumbers = []; +for (q = 0; q < numberSeparated.length; q++) { // pasando numeros para sumarlos // [ 1, 0, 1, 8 ] + arrayNumbers.push(parseInt(numberSeparated[q])); +} + +var sumOfLarge = 0; +for (r = 0; r < arrayNumbers.length; r++) { + sumOfLarge += (arrayNumbers[r]); +} + +var count = impair + smallNumbers + sumOfLarge; +if (cardNumber === '' || cardNumber !== Number) { + alert('TIENE QUE INGRESAR NUMERO VALIDO '); +} else if (count % 10 === 0) { + alert('TU TARJETA DE CREDITO ES VALIDA '); +} else { + alert('TU TARJETA DE CREDITO ES INVALIDA'); +} + +// 4088521938925895 diff --git a/index.html b/index.html new file mode 100644 index 0000000..c8e2e8a --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ + + +
+ +