我正在寻找在循环内部进行动态生成条件的最佳方法。动态生成条件JS
值得千言万语所以这里的样本是我的代码:
var condition = "data.label == 'Test'";
for (var key in andArray) {
condition += "&& " + andArray[key];
}
for (var key in orArray) {
condition += "|| " + orArray[key];
}
var length = dataArray.length;
var result = [];
for (var i = 0; i < length; i++) {
var data = dataArray[i];
if (eval(condition)) {
result.push(obj);
}
}
我使用eval()
功能,效果很好,但是这是真的太慢了!对于200个元素的数组,这段代码需要25ms执行! 这是真的不能接受的,知道我要在数千个元素的数组上使用这种类型的东西。
你有没有想法做另一种方式,更快?
这真的很好,你为我开启了一种思考一些事物的新方式! 但我希望让用户自己输入比较结果......所以在任何情况下它都是字符串:) –