# Challenge Project: Credit Card Checker

This is my first time public here but this is that I can do.
// All valid credit card numbers
const valid1 = [4, 5, 3, 9, 6, 7, 7, 9, 0, 8, 0, 1, 6, 8, 0, 8];
const valid2 = [5, 5, 3, 5, 7, 6, 6, 7, 6, 8, 7, 5, 1, 4, 3, 9];
const valid3 = [3, 7, 1, 6, 1, 2, 0, 1, 9, 9, 8, 5, 2, 3, 6];
const valid4 = [6, 0, 1, 1, 1, 4, 4, 3, 4, 0, 6, 8, 2, 9, 0, 5];
const valid5 = [4, 5, 3, 9, 4, 0, 4, 9, 6, 7, 8, 6, 9, 6, 6, 6];

// All invalid credit card numbers
const invalid1 = [4, 5, 3, 2, 7, 7, 8, 7, 7, 1, 0, 9, 1, 7, 9, 5];
const invalid2 = [5, 7, 9, 5, 5, 9, 3, 3, 9, 2, 1, 3, 4, 6, 4, 3];
const invalid3 = [3, 7, 5, 7, 9, 6, 0, 8, 4, 4, 5, 9, 9, 1, 4];
const invalid4 = [6, 0, 1, 1, 1, 2, 7, 9, 6, 1, 7, 7, 7, 9, 3, 5];
const invalid5 = [5, 3, 8, 2, 0, 1, 9, 7, 7, 2, 8, 8, 3, 8, 5, 4];

// Can be either valid or invalid
const mystery1 = [3, 4, 4, 8, 0, 1, 9, 6, 8, 3, 0, 5, 4, 1, 4];
const mystery2 = [5, 4, 6, 6, 1, 0, 0, 8, 6, 1, 6, 2, 0, 2, 3, 9];
const mystery3 = [6, 0, 1, 1, 3, 7, 7, 0, 2, 0, 9, 6, 2, 6, 5, 6, 2, 0, 3];
const mystery4 = [4, 9, 2, 9, 8, 7, 7, 1, 6, 9, 2, 1, 7, 0, 9, 3];
const mystery5 = [4, 9, 1, 3, 5, 4, 0, 4, 6, 3, 0, 7, 2, 5, 2, 3];

// An array of all the arrays above
const batch = [valid1, valid2, valid3, valid4, valid5, invalid1, invalid2, invalid3, invalid4, invalid5, mystery1, mystery2, mystery3, mystery4, mystery5];

// We are verify if the credit card is false or not
const validateCred = array => {
// Add where are sum the results and storage the new values of array
let position = 0; // Set up for card numbers that are < 16 char
let sum = 0;
let newArray = ;
for (let i = array.length - 1; i >= 0; iâ€“) {
position++;
// Read through the array since left to right
if (position % 2 === 0) { // If you donâ€™t use a point one in valid cards one array was false
// We are reat through of two and multiply
// console.log(\${i}: \${array[i]});
if ((array[i] * 2) > 9) {
// If the value is more greate than 9 substract 9 to the multiply
newArray.push((array[i] * 2) - 9);
} else {
newArray.push(array[i] * 2);
}
} else {
// We are storage the otherâ€™s positions of array
newArray.push(array[i]);
}
}
// New for to get the sum of array
sum = newArray.reduce((item, val) => item + val);
// We get the sum total of array
// If we get the 0 in % if is 0 itâ€™s true against is false
return sum % 10 === 0 ? true : false;
}

// We are showing the results of credit card is nested in batch
for (let j = 0; j < batch.length; j++) {
console.log(validateCred(batch[j]));
}

// Get the invalid credit cards and storage in a new array
const findInvalidCards = invalidArray => {
const invalidCards = ; // Create a new array to storage the invalid cards
for (let j = 0; j < invalidArray.length; j++) {
validateCred(invalidArray[j]); // Call the laast function to filter the invalid cards
if (validateCred(invalidArray[j]) === false) {
// If in array found false cards we are save the new array.
invalidCards.push(invalidArray[j]);
}
}
return invalidCards;
}

console.log(findInvalidCards(batch));

// Give the name of company with false cards
const idInvalidCardCompanies = invalidFirstNumber => {
const companysId = ;
for (let f = 0; f < invalidFirstNumber.length; f++) {
if(invalidFirstNumber[f][0] === 3) {
if (companysId.indexOf(â€˜Amexâ€™) === -1) {
// If companysId doesnâ€™t have this names add the name of company
companysId.push(â€˜Amexâ€™);
} else {
continue;
// Now companysId have the name only one donâ€™t repeat more the name
}
} else if (invalidFirstNumber[f][0] === 4) {
if (companysId.indexOf(â€˜Visaâ€™) === -1) {
companysId.push(â€˜Visaâ€™);
} else {
continue;
}
} else if (invalidFirstNumber[f][0] === 5) {
if (companysId.indexOf(â€˜Mastercardâ€™) === -1) {
companysId.push(â€˜Mastercardâ€™);
} else {
continue;
}
} else if (invalidFirstNumber[f][0] === 6) {
if (companysId.indexOf(â€˜Discoverâ€™) === -1) {
companysId.push(â€˜Discoverâ€™);
} else {
continue;
}
} else {