diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..fbb5dc3 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,29 @@ +{ + "parserOptions": { + "ecmaVersion": 6 + }, + "rules": { + "keyword-spacing": 1, + "space-before-function-paren": [1, "never"], + "eqeqeq": 1, + "space-infix-ops": 1, + "comma-spacing": 1, + "brace-style": 1, + "no-multiple-empty-lines": 1, + "camelcase": 1, + "func-call-spacing": 1, + "key-spacing": 1, + "semi": 1, + "no-floating-decimal": 1, + "no-multi-spaces": 1, + "object-property-newline": 1, + "padded-blocks": [1, "never"], + "space-before-blocks": 1, + "space-in-parens": 1, + "spaced-comment": 1, + "quotes": [1, "single"], + "id-length": [1, { "exceptions": ["i", "j", "x"] }], + "indent": [1, 2], + "no-array-constructor": 1 + } +} diff --git a/app.js b/app.js new file mode 100644 index 0000000..d21e9fe --- /dev/null +++ b/app.js @@ -0,0 +1,50 @@ +/* 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. Lee este blog que explica cómo funciona el algoritmo de Luhn. +Consideraciones Específicas +Tu código debe estar compuesto por 1 función: isValidCard +El usuario no debe poder ingresar un campo vacío +*/ +// hago un prompt en donde pido al usuarioque ingrese el número de su tarjeta de crédito +var question = prompt('Ingresa el número de tu tarjeta'); +// hago la función cardNumberInArray +function cardNumberInArray(cardNumber) { +// creo un array vacío para que se guarde mi nuevo array + var cardNumberInArrayReverse = []; + // hago una condicional que solo acepte números, no vacíos o strings + if (cardNumber === '') { + return prompt('Ingreso no válido \nVuelva a ingresar el número de su tarjeta'); + // si lo ingresado es un número pasa al proceso de convertir en un array + } else { + for (var i = 0 ; i < cardNumber.length; i++) { + cardNumberInArrayReverse.unshift(parseInt(cardNumber.charAt(i))); + } + return cardNumberInArrayReverse; + } +} +console.log(cardNumberInArray(question)); + +var newNumberCard = cardNumberInArrayReverse; +// declaro la funcion cardNumberDuplicated para preparar mi array nuevo con las posiciones pares duplicadas y así luego ingrese al proceso de validación según el algoritmo de Luhn +function preparesForAlgorithm(newNumberCard) { + var arrayToNewCard = []; + for (var index = 0; index < newNumberCard.length; index++) { + // hago un for para ubicar las posiciones pares dentro de newNumberCard + if (u % 2 === 1) { + // extraigo los digitos de las posiciones pares de newNumberCard + var result = newCard[index] * 2; + // hago la condición para fijarme que los resultados que son mayor a 10, puedan sumar sus dos cifras + if (result >= 10) { + var sum = 0; // creo la variable sum para que guarde el resultado de la suma de cifras de los resultados mayores a 10 + for (var i = 0; i < String(result).length; i++) { + // un for que recorra mi array, tengo que convertir result en un string para poder extraer la primera cifra + sum += parseInt(String(result).charAt(i)); // como result en realidad es un string, puedo aplicar un charAt y extraer una de sus "cifras" en string, por lo que debo convertir con un parseInt a un number + } + arrayToNewCard.push(sum); // agrego al nuevo array la suma de los digitos del digito duplicado que es>=10. + } else { + arrayToNewCard.push(result); // agrego al nuevo array los digitos duplicados <10. + } + } else { + arrayToNewCard.push(newNumberCard[j]); // agregando al nuevo array los digitos de las posiciones impares. + } + } + return arrayToNewCard; // Retornar el nuevo array +} \ No newline at end of file diff --git a/assets/img/DiagramaDeFlujo.png b/assets/img/DiagramaDeFlujo.png new file mode 100644 index 0000000..be82dcb Binary files /dev/null and b/assets/img/DiagramaDeFlujo.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..6ca3010 --- /dev/null +++ b/index.html @@ -0,0 +1,10 @@ + + + + + Tarjeta de crédito válida + + +