栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

排序功能以及比较功能如何在JavaScript中起作用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

排序功能以及比较功能如何在JavaScript中起作用

“比较”功能必须采用两个参数,通常称为 ab 。然后,根据这些值 ab 使比较函数返回0,大于0或小于0 。

  1. 如果 a* 大于 b, 则返回大于0 *
  2. 如果 a* 等于 b, 则返回0 *
  3. 如果 a* 小于 b, 则返回小于0 *

使用这三个返回值和仅两个参数,可以编写一个可以对任何类型的输入数据类型或复杂数据结构进行排序的比较函数。

然后,当您使用自定义比较函数调用sort()时,将在要排序的列表中的对上调用比较函数,以确定适当的顺序。

让我们来看一个简单的示例…假设您只是对一些数字进行排序,因此我们有一个非常简单的比较函数:

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

如果a大于b,简单地从a中减去b总是返回大于零,如果相等则返回0,如果a小于b则返回小于零。因此,它满足比较功能的要求。

现在,假设这是我们要排序的数字列表:

var numbers = [1,5,3.14];

当您调用时

numbers.sort(compare)
,它将在内部实际执行:

compare(1,5);     // Returns -4, a is less than bcompare(1,3.14);  // Return -2.14, a is less than bcompare(5,3.14);  // returns 1.86, a is greater than b

如果您曾经进行过手动排序或按字母顺序排列,那么您所做的正是同一件事,可能没有意识到。即使您可能要比较数十个或几百个项目,您一次也经常只比较两个数字(或作者的姓氏,或其他)。再次浏览或简短列出三个数字,您将从比较前两个数字开始:

  1. 1是否大于或小于5?小于,因此将这两个数字放在我们的列表中:1,5
  2. 3.14是否大于或小于1?大于,因此在新列表中排在1之后
  3. 在我们的新列表中,3.14是否大于或小于5?小于,因此在5之前。我们的新列表现在为[1,3.14,5]

因为您可以提供自己的compare()函数,所以可以对任意复杂的数据进行排序,而不仅仅是数字。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430296.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号