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

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -