我想要实现用户定义的逻辑条件。由于用户定义基本上是字符串,我试图通过避免字符串比较来使代码更加高效。例如,一个简单的测试如
为了使逻辑评估更加高效,我想要创建一个类似于ffg的对象。
a == 10
将被表示为一个数组。var userDef = ['a', '==', 10]
为了使逻辑评估更加高效,我想要创建一个类似于ffg的对象。
var binaryOperator = {'==': 0, '>': 1, '<': 2}
因此,当我遍历这个数组时,我可以做...
if(binaryOperator[userdef[1]] == 0)
{
return (obj[userDef[0]] == userDef[2])
}
... 当然 obj.a = something。从表面上看,上面的代码避免了字符串比较。
但是实际上呢?引用 binaryOperator[userdef[1]]
真的很快吗,还是在某个地方也涉及到了字符串比较?
换句话说,在 thisObj.a
和 thisObj['a']
之间存在性能差异吗?
(obj[userDef[0] == userDef[2])
。 - gurvinder372if( userdef[1] == '==' )
或者switch( userdef[i] ){ case "==" }...
呢? - gurvinder372