брать массивы из вложенных массивов - PullRequest
0 голосов
/ 30 марта 2020
const batch = [valid1, valid2, valid3, valid4, valid5, invalid1, invalid2, invalid3, invalid4, invalid5, mystery1, mystery2, mystery3, mystery4, mystery5]


// Add your functions below:


function validateCred(array) {
  let sumArray= [] 
  for (i=0; i < array.length ; i++){
    //console.log(i)
    if (array.length%2 !==0 ) {
    if(i%2 !==0) {
      if(array[i]*2 < 10){
        sumArray.push(array[i]*2)
      } else{
        sumArray.push(array[i]*2-9)
      }
    } else {
      sumArray.push(parseInt(array[i],10))
    } 
    } else { if(i%2 ===0) {
      if(array[i]*2 < 10){
        sumArray.push(array[i]*2)
      } else{
        sumArray.push(array[i]*2-9)
      }
    } else {
      sumArray.push(parseInt(array[i],10))
    }
    }
  }
  if(sumArray.reduce( (prv, cur) => prv + cur) % 10===0) {
return true
  }else{
    return false
  }
}

function findInvalidCards(nestedArray) {
  let nestedArrayInvalid= [] ;
  for(i=0; i < nestedArray.length; i++){
   if(validateCred(nestedArray[i]) === false){
      nestedArrayInvalid.push(nestedArray[i])
    } 
  } 
 return nestedArrayInvalid 
}

console.log(findInvalidCards(batch))

Я пишу проверку кредитной карты, функция алгоритма luhn завершена, но теперь я пытаюсь взять вложенный массив и все недопустимые карты, которые будут добавлены в массив, как видно во второй функции, но это просто не ' кажется, работает, я понятия не имею, что не так

1 Ответ

0 голосов
/ 30 марта 2020

Я не уверен, как ваша функция validateCred() возвращает данные, но когда она возвращает истину или ложь для каждого элемента в отдельности, findInvalidCards(), кажется, работает должным образом:

const batch = [true, false, false, true, true]


// Add your functions below:


function validateCred(arrayItem) {
   return arrayItem
}

function findInvalidCards(nestedArray) {
  let nestedArrayInvalid= [];
  for(i=0; i < nestedArray.length; i++){
   if(validateCred(nestedArray[i]) === false){
      nestedArrayInvalid.push(nestedArray[i])
    } 
  } 
 return nestedArrayInvalid 
}

console.log(findInvalidCards(batch))
...