Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  
  <span>Ida:</span>
  <div id="ida-ranger"></div>
  
  <div class="min-hora-ida-label">A partir de: </div>
  <div class="max-hora-ida-label">Até: </div>
  
  <link href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
</body>
</html>
 
const json = {
   "aPesquisa":[
      {
         "dsObservacao":null,
         "trecho":[
            {
               "sqTrecho":1,
               "voo":[
                  {
                    "dtPartida":"20170620 11:20",
                    "dtChegada":"20170620 16:40"
                  }
               ]
            },
            {
               "sqTrecho":2,
               "voo":[
                  {
                     
                     "dtPartida":"20170627 04:10",
                     "dtChegada":"20170627 07:40"
                  },
                  {
                     "dtPartida":"20170627 14:15",
                     "dtChegada":"20170627 17:40"
                  }
               ]
            }
         ]
      },
      
      {
         "dsObservacao":null,
         "trecho":[
            {
               "sqTrecho":1,
               "voo":[
                  {
                    "dtPartida":"20170720 11:20",
                    "dtChegada":"20170720 16:40"
                  }
               ]
            },
            {
               "sqTrecho":2,
               "voo":[
                  {
                     
                     "dtPartida":"20170727 04:10",
                     "dtChegada":"20170727 07:40"
                  },
                  {
                     "dtPartida":"20170727 14:15",
                     "dtChegada":"20170727 17:40"
                  }
               ]
            }
         ]
      }
   ]
};
function chamaFiltro (horaminida)
{
  // Copia os dados para `data`:
  let data = Object.assign({}, json);
  // Filtra os dados em `aPesquisa`:
  let result = data.aPesquisa.filter(item => {
    // Filtra os dados em `aPesquisa[i].trecho`:
    let trechos = item.trecho.filter(trecho => {
      let voos = trecho.voo.filter(voo => {
        // Extrai o horário de `dtPartida`:
        let time = voo.dtPartida.split(' ')[1];
        // Mantém no resultado final se o horário for maior ou igual ao de entrada:
        return time > horaminida;
      });
      // Atualiza os valores filtrados dos voos:
      trecho.voo = voos;
      // Mantém no resultado final se possuir dados em voo:
      return voos.length > 0;
    });
    // Atualiza os valores filtrados dos trechos:
    item.trecho = trechos;
    // Mantém no resultado final se possuir dados em trecho:
    return trechos.length > 0;
  });
  // Retorna o resultado:
  return result;
}
console.log(chamaFiltro("10:30"));
Output

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers