Hello, how are you? I have a code that filters the data of a JSON with jQuey, I can filter with pre-defined values in a variable. But I wanted to use the values of a slide range of jquery ui to filter the json, only when I try to do this can not he is returning empty. Does anyone know how I can use the slide range for such an operation? Thanks
I'm doing a JavaScript jQuery filter where it filters a result that is in Json, but I'm not consguindo cause it to filter using a slider range of jQuery UI. JSON
var json = { "tpAmbiente":null, "hotelPesquisa":[ { "dtEntrada":"20170510", "dtSaida":"20170511", "hotel":{ "id":94, "nome":"Itamarati" }, "quarto":[ { "quartoUh":[ { "nQUarto": 1, "tarifa":{ "vlDiariaTotal":157.21, "desconto":null }, "qtDisponivel":null, "desconto":null }, { "nQUarto": 2, "tarifa":{ "vlDiariaTotal":157.21, "desconto":null }, "qtDisponivel":null, "desconto":null }, ] } ] }, { "dtEntrada":"20170510", "dtSaida":"20170511", "hotel":{ "id":95, "nome":"copacabana" }, "quarto":[ { "quartoUh":[ { "nQUarto": 1, "tarifa":{ "vlDiariaTotal":102.1, "desconto":null }, "qtDisponivel":null, "desconto":null }, { "nQUarto": 2, "tarifa":{ "vlDiariaTotal":102.1, "desconto":null }, "qtDisponivel":null, "desconto":null }, ] } ] }, { "dtEntrada":"20170510", "dtSaida":"20170511", "hotel":{ "id":96, "nome":"Itamarati" }, "quarto":[ { "quartoUh":[ { "nQUarto": 1, "tarifa":{ "vlDiariaTotal":157.21, "desconto":null }, "qtDisponivel":null, "desconto":null }, { "nQUarto": 2, "tarifa":{ "vlDiariaTotal":157.21, "desconto":null }, "qtDisponivel":null, "desconto":null }, ] } ] }, { "dtEntrada":"20170510", "dtSaida":"20170511", "hotel":{ "id":96, "nome":"Litoral Hotel" }, "quarto":[ { "quartoUh":[ { "nQUarto": 1, "tarifa":{ "vlDiariaTotal":1001.00, "desconto":null }, "qtDisponivel":null, "desconto":null }, { "nQUarto": 2, "tarifa":{ "vlDiariaTotal":1001.00, "desconto":null }, "qtDisponivel":null, "desconto":null }, ] } ] } ] };
Function
function filtro(min, max){ var pesquisa = { min: min, max: max }; var filtrados = json.hotelPesquisa.filter(function(hotel) { hotel.quarto[0].quartoUh = hotel.quarto[0].quartoUh.filter(function(quarto) { return quarto.tarifa.vlDiariaTotal dados.min; }); return hotel.quarto[0].quartoUh.length > 0; }); console.log(filtrados); }
I use the Jquery UI slider that range the code and:
$("#price-range").slider({ range: true, min: 0, max: 1000, values: [ 0, 1000 ], slide: function( event, ui ) { tjq(".min-price-label").html(ui.values[ 0 ]); tjq(".max-price-label").html(ui.values[ 1 ]); filtro(ui.values[ 0 ], ui.values[ 1 ]); } });
When I drag the slider it calls the filter function by passing the parameters min and max to be able to filter the json with the minimum and maximum values of the slider. in the beginning it lays filters but after dragging the slider several times it returns empty:
[]
Does anyone know how I can solve this? Thanks!