javascript - How do I filter an array based on a range of numbers? -
i have array filter function:
function filter(arr, criteria) { return arr.filter(function(obj) { return object.keys(criteria).every(function(c) { return !(criteria[c]) || obj[c] == criteria[c]; }); }); } var arr = filter(arr, { dep: dv, arr: av, car: cv, epi: acv, dur: dv });
and have bunch of options user can choose in select. duration, here have:
<select name="duration" id="duration"> <option selected disabled hidden value="">-</option> <option value="l1">less 1 hour</option> <option value="1to3">1 3 hours</option> <option value="3to6">3 6 hours</option> <option value="6to10">6 10 hours</option> <option value="m10">more 10 hours</option> </select>
but filter based on exact criteria. want filter float numbers in arr
between 1 , 3 or 6 , 10. want able run other filters see there dep, arr, car, epi, dur. there way can this?
use array.filter
callback. code below uses dictionary entries corresponding option values.
var myarray = [1,2,3,3.1,math.pi,4,4.3,6.1]; //sample array //dictionary option values functions (js objects work hashtables) var options = { "l1": function(a){return a.duration<1;}, "1to3": function(a){return a.duration>=1 && a.duration<3;}, "3to6": function(a){return a.duration>=3 && a.duration<=6;}, ... //when need filter array, so: var mynewarray = myarray.filter( options[ document.getelementbyid('duration').selectedoptions[0].value ] );
Comments
Post a Comment