gpt4 book ai didi

javascript - Google 脚本 - Array.sort - compareFunction 的操作数是否反转?

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

我正在研究如何在 Google Scripts 中使用 array.prototype.sort()。我对 compareFunction 的理解是,对于某些数组 A = [5,17,10,3],在运行时:

A.sort(function(a,b){\\some function}),关于compareFunction a == A[0]b==A[1]。这不是真的吗?考虑下面的代码

  var test = [5,17,10,3]

test.sort(function(a,b){
Logger.log("a,b")
Logger.log(a,b)
Logger.log("a>b")
Logger.log(a>b)
return (a-b)

})

当我在 Logger.log("a,b") 处使用断点调试代码时,在第一次通过时,我的局部变量窗口显示 a = 17b = 5

我是否完全误解了 two sources我查看了哪些文档?

谢谢!

最佳答案

ECMAScript 标准没有说明使用了哪种特定的 sort 算法。 (其中一个较新的标准至少声明它应该是稳定排序。ES5 不需要这个。)

这意味着,从字面上看,任何东西都可以在引擎盖下,并且 compare 函数可以按任何顺序调用。

当我需要了解数组中项目的原始顺序时(强制进行稳定排序),我可以遍历数组并为我的 compare 添加一个新的 originalIndex 要使用的函数。

因为您的示例使用的是原语,所以这不是一个简单的选择。

关于javascript - Google 脚本 - Array.sort - compareFunction 的操作数是否反转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59537870/

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