javascript - Dynamic generated condition JS -


i'm looking best way make dynamic generated condition inside loop.

a sample worth thousand words here code :

var condition = "data.label == 'test'";  (var key in andarray) {     condition += "&& " + andarray[key]; }  (var key in orarray) {     condition += "|| " + orarray[key]; }  var length = dataarray.length; var result = []; (var = 0; < length; i++) {     var data = dataarray[i];     if (eval(condition)) {         result.push(obj);     } } 

i use eval() function, works slow ! 200 elements array, code take 25ms executed ! not acceptable, knowing i'm going use kind of thing on arrays thousands of elements.

have got idea way, faster ?

create new function(), way string parsed once:

var length = dataarray.length; var result = []; var fn = new function('data', 'return ' + wherecondition);  (var = 0; < length; i++) {     var data = dataarray[i];     if (fn(data)) {         result.push(obj);     } } 

Comments