当前位置: 首页 > 面试题库 >

Javascript的sort()如何工作?

罗韬
2023-03-14
问题内容

以下代码如何将该数组按数字顺序排序?

var array=[25, 8, 7, 41]

array.sort(function(a,b){
  return a - b
})

我知道如果计算结果是…

小于0 :“ a”被排序为比“ b”低的索引。
零: “ a”和“ b”被视为相等,并且不执行排序。
大于0: “ b”被排序为比“ a”低的索引。

在排序过程中是否多次调用了数组排序回调函数?

如果是这样,我想知道每次将两个数字传递给函数。我假设它首先使用“ 25”(a)和“ 8”(b),然后是“ 7”(a)和“ 41”(b),所以:

25(a)-8(b)= 17(大于零,因此将“ b”排序为比“ a”低的索引):8、25

7(a)-41(b)= -34(小于零,因此将“ a”排序为比“ b”低的索引:7、41

那么如何将两组数字彼此相对排序?

请帮助陷入困境的新手!


问题答案:

在排序过程中是否多次调用了数组排序回调函数?

如果是这样,我想知道每次将两个数字传递给函数

您可以通过以下方式了解自己:

array.sort((a,b) => {
  console.log(`comparing ${a},${b}`);
  return a > b ? 1
               : a === b ? 0 
                         : -1;
});

编辑

这是我得到的输出:

25,8
25,7
8,7
25,41


 类似资料:
  • 问题内容: 我不喜欢动态编程语言,但是我写了相当一部分JavaScript代码。我从来没有真正了解过这种基于原型的编程,有人知道它是如何工作的吗? 我记得很久以前与人们进行过多次讨论(我不确定自己在做什么),但是据我了解,这里没有一个课堂的概念。这只是一个对象,这些对象的实例是原始对象的副本,对吧? 但是,此“ .prototype”属性在JavaScript中的确切目的是什么?它与实例化对象有何

  • 嗨,我知道在长轮询中,你保持与服务器的连接打开很长时间,直到你从服务器得到响应,然后再次轮询,等待下一个响应。然而,我似乎不明白如何编写它。下面的代码使用长轮询,但我似乎不明白

  • 问题内容: JavaScript中的垃圾回收如何工作?它类似于.NET垃圾回收吗?难道是因为人们在VBScript中实现垃圾回收很不好,所以人们避免了垃圾回收并建立了对JavaScript作为其标准客户端语言的偏好? 问题答案: 垃圾收集如何工作? 简短的答案是:当某个内存块(例如某个对象)不再可访问时,有资格回收它。何时,如何回收或是否回收它完全取决于实现,并且不同的实现方式也不同。但是在语言级

  • 我得到了一个对象,它实现了

  • 问题内容: “ this”关键字如何工作? 问题答案: [§11.1.1]的关键字 所述关键字的计算结果为当前执行上下文的ThisBinding的值 这个绑定是JavaScript解释器在评估JavaScript代码时所维护的,例如特殊的CPU寄存器,其中包含对对象的引用。每当在以下三种情况之一中建立执行上下文时,解释器都会更新ThisBinding: 1.初始全局执行上下文 在顶级代码中评估的J

  • 本文向大家介绍javascript中sort()的用法实例分析,包括了javascript中sort()的用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了javascript中sort()的用法。分享给大家供大家参考。具体分析如下: 函数的语法: you think this is not the right way but you love it  这里还用到了split函数