gpt4 book ai didi

javascript - JS 中逻辑运算符的字符串比较

转载 作者:行者123 更新时间:2023-11-29 11:00:41 27 4
gpt4 key购买 nike

我正在尝试允许用户定义逻辑标准。由于用户定义基本上都是字符串,因此我试图通过避免字符串比较 来提高代码效率。例如,像 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.athisObj['a'] 之间是否存在性能差异?

最佳答案

您可以省略对运算符的检查并将函数作为值,例如

var binaryOperator = {
'==': function (a, b) { return a === b; },
'<': function (a, b) { return a < b; },
'>': function (a, b) { return a > b; }
};

Javascript 中的对象具有 O(1) 的访问权限。

进一步阅读:

关于javascript - JS 中逻辑运算符的字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47648966/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com