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
Post a Comment