gpt4 book ai didi

javascript - 优化此双重比较结果以在 javascript 中排序

转载 作者:行者123 更新时间:2023-11-30 10:50:09 24 4
gpt4 key购买 nike

通常在排序时你会做:

if (x < y) return -1
else if (x > y) return 1
else return 0

return ((x > y) ? 1 : ((x < y)) ? -1 : 0))

似乎可以只用一个来完成两个比较。在汇编中,您所要做的就是将两者减去一个寄存器,检查是否为负,检查是否为零。如果我们要减去,问题出在 javascript 中:

var sub = (x - y);
return (sub == 0 ? 0 : ((sub < 0) ? -1 : 1))

这最终会执行更多代码。

那么,一些问题:

  • 有没有办法在 javascript 中简化或加快这个过程?
  • 像 chrome 这样的编译 javascript 解释器可以优化这种比较吗?
  • 其他语言呢?

最佳答案

在 Javascript 中,sort 不必返回 -101。它可以返回任何数字。这意味着您只需将一个数字减去另一个数字即可进行比较。

MDC docs for Array.sort建议这个实现:

function compareNumbers(a, b)
{
return a - b;
}

var nums = [34, 56, 1, 42, 63];
nums.sort(compareNumbers);
// [1, 34, 42, 56, 63]

关于javascript - 优化此双重比较结果以在 javascript 中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5950134/

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