sort()的函数参数——function(a,b){return a -b} 相关问题

sort()的定义和用法

sort() 方法用于对数组的元素进行排序。

排序顺序可以是字母或数字,并按升序或降序。

默认排序顺序为按字母升序。

注意:当数字是按字母顺序排列时"40"将排在"5"前面。

使用数字排序,你必须通过一个函数作为参数来调用。

函数指定数字是按照升序还是降序排列。

这些说起来可能很难理解,你可以通过本页底部实例进一步了解它。

注意: 这种方法会改变原始数组!。(参考:https://www.runoob.com/jsref/jsref-sort.html)

关于 sort() 这个函数,平时只是用来做一些简单的排序,也只能进行升序排序,以前认为它功能单一,其实不然,写好该函数的参数,sort() 的功能强大出乎想象

1、sort 的原理

此处正序排序原理:

return a-b 这段代码:a指的是array[j] b 指的是array[j+1] 即 a 指的是前一个数,b指的是后一个数;

a-b>0时,也就是 第一个数比第二个数大 则 在if语句中 fncompare()函数的结果 为>0

所以if语句可以执行,两个数交换位置 a 数 换到 b 的位置 意思是 :大的数向后移动

所以 return a-b 的结果就是正序(因为将大的数向后排)

同理 可以知道 return b-a 就是倒序。

引用自:https://blog.csdn.net/qq_43058026/article/details/104531495

图片2中的代码我不知道是不是JavaScript的源码,不过表达的意思很清楚了,sort的原理大概就是冒泡排序吧

2、应用实例

eventOrderArr.sort((a, b) => {
if (moment(a.startDate).isAfter(b.startDate)) return 1;
if (moment(a.startDate).isBefore(b.startDate)) return -1;
return 0;
});
此处使用的是 时间插件 moment.js 里面的时间比较函数,比较了 a元素和b元素的 startDate 属性 如果 a.startDate 要晚于(isAfter) b 就返回 1,

此处使用的是 时间插件 moment.js 里面的时间比较函数,比较了 a元素和b元素的 startDate属性 如果 a.startDate 要晚于(isAfter) b 就返回 1,如果 a.startDate 要早于(isBefore) b 就返回 -1,相同则返回 0,

这样写就能够 对 eventOrderArr 这个复杂对象数组,根据 startDate属性 进行按 时间先后的 升序排序

掌握了 sort() 的函数参数的写法,对于一些比较 复杂的数组也能轻松进行排序了!

sort()的函数参数 —— function(a,b){return a -b} 相关问题_20220114的更多相关文章

  1. PHP笔记4__函数/全局、静态变量/函数参数/加载函数库/,,

    <?php header("Content-type: text/html; charset=utf-8"); echo table(5,5); function table ...

  2. javascript基础:函数参数与闭包问题

    今天在写东西的时候,对函数参数的概念有些模糊,查阅相关资料后,在博客上记点笔记,方便日后复习. 首先,在js中函数参数并没有强语言中那么要求严格,他不介意传递进来多少个参数,也不在乎传进来的参数是什么 ...

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

    var points = [40,100,1,5,25,10]; var b= points.sort(function(a,b){return a-b}); console.log(b); 那个fu ...

  4. PythonStudy——函数的返回值 The return value of the function

    # 在函数体中,通过return关键词返回函数的内部数据给外部 """# 一.作用# return作用:1.结束函数:2.将函数的内部数据返回给外部 def fn(): ...

  5. ES6,变量,函数-参数,结构赋值

    变量 var 1.可以重复声明. 无法限制修改-, 没有块级作用域 let不能重复声明,变量-可以修改,块级作const不能重复声明,常量-不能修改,块级作 函数——箭头函数function 名字() ...

  6. python基础-4 函数参数引用、lambda 匿名函数、内置函数、处理文件

    上节课总结 1.三元运算 name=“name1”if 条件 else “name2” 2.深浅拷贝 数字.字符串 深浅,都一样 2.其他 浅拷贝:只拷贝第一层 深拷贝:不拷贝最后一层 3.set集合 ...

  7. JS对象 数组排序sort() sort()方法使数组中的元素按照一定的顺序排列。 语法: arrayObject.sort(方法函数)

    数组排序sort() sort()方法使数组中的元素按照一定的顺序排列. 语法: arrayObject.sort(方法函数) 参数说明: 1.如果不指定<方法函数>,则按unicode码 ...

  8. 深入理解javascript函数参数与闭包(一)

    在看此文章,希望先阅读关于函数基础内容 函数定义与函数作用域 的章节,因为这篇文章或多或少会涉及函数基础的内容,而基础内容,我放在函数定义函数作用域 章节. 本文直接赘述函数参数与闭包,若涉及相关知识 ...

  9. Swift 定义函数 参数 返回值

    定义多参数函数 - 用func声明函数  func name(parameters) -> return type { function body } func halfOpenRangeLen ...

  10. jQuery源码笔记(二):定义了一些变量和函数 jQuery = function(){}

    笔记(二)也分为三部分: 一. 介绍: 注释说明:v2.0.3版本.Sizzle选择器.MIT软件许可注释中的#的信息索引.查询地址(英文版)匿名函数自执行:window参数及undefined参数意 ...

随机推荐

  1. 2.2 Memory model

    1. 内存区域.类型及属性 内存被分成不同的区域,不同区域有着不同的类型及属性:内存的类型及属性决定着访问这些区域时的行为. 内存的类型有: Normal,处理器可以为了效率而重新排序事务,或者执行推 ...

  2. linux中级——libcurl库访问百度

    libcurl简介: libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议.libcurl同样支持H ...

  3. 20.从0学ARM-移植uboot支持exynos4412

    经过前面一章的学习,我们已经了解了什么是uboot,本章主要目的是如何编译和移植uboot,增加串口.网络.emmc等功能,让他支持exynos4412开发板. 一.移植步骤 1. Uboot配置 指 ...

  4. k8s中controller-runtime并发Reconcile分析

    § 0x01 起因 开发控制器时,团队内一直在讨论是否需要为单个控制器对象添加并发控制(即加锁),最终把 controller-runtime 框架中并发数改为1,同时启用了 k8s 的 leader ...

  5. CentOS 进入救援模式

    因某些修改操作,导致系统重启后无法正常启动,此时需要进入救援模式,修复错误配置即可. 1.重启系统后,进入grup引导页面,选中第一项然后按"e" 进入编辑模式: 2.通过↓键找到 ...

  6. CF1693D--单调区间

    \(T_4\) 单调区间结题报告 题目描述 一句话题意:给定一个排列 \(a\) 算出有多少个区间 \([l , r]\) , 满足其可以划分为一个单调递增子序列和单调递减子序列,其中单调递增子序列长 ...

  7. 一加8t救砖教程

    关机 按住音量上下和电源键 重启到fastboot 取到原系统boot ./fastboot flash boot_a boot.img ./fastboot flash boot_b boot.im ...

  8. 折腾 Quickwit,Rust 编写的分布式搜索引擎-官方配置详解

    Node configuration(节点配置) 节点配置允许您为集群中的各个节点自定义和优化设置.它被分为几个部分: 常规配置设置:共享的顶级属性 Storage(存储)设置:在storage部分定 ...

  9. Kubernetes 初体验

    在 DigitalOcean 创建一个 Kubernetes 集群 下载集群 Config 文件到 ~/.kube 目录 通过环境变量 KUBECONFIG 设置本地 kubectl 工具使用下载的配 ...

  10. 【YashanDB知识库】手动停止统计信息自动收集任务导致的性能变差

    [问题分类]功能使用 [关键字]统计信息收集 [问题描述]UAT对外演示环境因统计信息收集任务引起数据库整理性能变慢无应急处理手段 [问题原因分析] ● DROP_JOB程序用于删除一个非执行状态下的 ...