1
I have the following Javascript code:
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 Jquery UI the slider range that 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 min and max parameters in order to filter the json with the minimum and maximum values of the slider. at first it even filters but after I drag the slider several times it returns empty:
[]
Does anyone know how I can fix this?
Example - Jsfiddle
The answers appears on the console.