位置: IT常识 - 正文

JS数组对象——根据日期进行排序Date.parse(),按照时间进行升序或降序排序localeCompare()(js数组entries)

编辑:rootadmin
JS数组对象——根据日期进行排序Date.parse(),按照时间进行升序或降序排序localeCompare() JS数组对象——根据日期对象进行排序,按照时间进行升序或降序排序场景复现封装数组对象的排序方法根据日期和时间对象排序1、按照日期时间混合排序2、分别按照日期和时间进行排序场景复现

推荐整理分享JS数组对象——根据日期进行排序Date.parse(),按照时间进行升序或降序排序localeCompare()(js数组entries),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js 数组 对象,js数组对象方法,js数组entries,js 数组 对象,js数组对象去重方法,js数组对象排序方法,js数组对象去重,js数组对象排序方法,内容如对您有帮助,希望把文章链接给更多的朋友!

排序在项目中非常实用,出现频率极高,尤其是后台管理系统,需要我们对大量的数据进行展示、处理、操作。一般都是从后台获取到数组对象,然后根据其中的一个属性对数据进行升序或者降序的处理。从本期文章开始,将分别介绍常用的三种排序——根据日期排序、根据中文首字母排序、根据英文首字母排序。这三种排序的使用频率非常高。

下面将举例详细介绍——按日期和时间顺序进行排序!

封装数组对象的排序方法

封装思想在项目中用到的非常多,封装用的好可以在很大程度上减少代码量,提高复用率。 首先我们先了解一下最简单的根据数字大小排序的排序方法封装。

// 封装数组对象排序方法compare(prop) { return function(a, b) { return b[prop] - a[prop] // 降序 // return a[prop] - b[prop] // 升序 }},// 比如arrList对象中根据score属性进行从大到小的排序const arrList = [ {id: 1, value : "value1", score: 97}, {id: 2, value : "value2", score: 126, }, {id: 3, value : "value3", score: 60, },];arrList = arrList.sort(arrList.compare('score'))

从大到小排序后的数据:

{id: 2, value : "value2", score: 126, },{id: 1, value : "value1", score: 97},{id: 3, value : "value3", score: 60, },

看完这个简单的大小排序后,我们切入正题,按照日期进行排序。

这里我们分为时间和日期混合排序(时间和日期在一个参数内)以及时间和日期分别排序(时间和日期对应两个参数)

根据日期和时间对象排序1、按照日期时间混合排序

(1)数组内容

let data = [ {id: 2, time: '2019-04-26 10:53:19'},{id: 4, time: '2019-04-26 10:51:19'}, {id: 1, time: '2019-04-26 11:04:32'}, {id: 3, time: '2019-04-26 11:05:32'}]

(2)利用Date.parse()对日期进行混合排序

// property是你需要排序传入的key,bol为true时是升序,false为降序function dateData(property, bol) {return function(a, b) {var value1 = a[property];var value2 = b[property];if (bol) {// 升序return Date.parse(value1) - Date.parse(value2);} else {// 降序return Date.parse(value2) - Date.parse(value1)}}}console.log(data.sort(dateData("time", true)))console.log(data.sort(dateData("time", false)))JS数组对象——根据日期进行排序Date.parse(),按照时间进行升序或降序排序localeCompare()(js数组entries)

控制台排序结果:

下面介绍日期和时间两个参数分开排序的例子

2、分别按照日期和时间进行排序

一、升序

1、数组内容

const arr = [ {id: 1, value : "value1", date: "2018-08-08", time: "15:27:17"}, {id: 2, value : "value2", date: "2018-08-09", time: "12:27:17"}, {id: 3, value : "value3", date: "2018-08-10", time: "17:27:17"}, {id: 4, value : "value4", date: "2018-08-10", time: "01:27:17"}, {id: 5, value : "value5", date: "2018-08-10", time: "09:27:17"}, {id: 6, value : "value6", date: "2018-08-10", time: "23:27:17"}, {id: 7, value : "value7", date: "2018-08-10", time: "16:27:17"}, {id: 8, value : "value8", date: "2018-08-11", time: "10:27:17"}];

方法:sort()、localeCompare()

sort用于排序,localeCompare用于比较 localeCompare不要写成localCompare

2、关键代码:(根据时间和日期进行排序)

// 按照时间先后顺序进行排序arr.sort((a, b) => a.date.localeCompare(b.date) || a.time.localeCompare(b.time));console.log(arr);// 包括了时间的比较,同时也包括了日期的比较

3、控制台排序结果:

二、降序

降序只需要将a和b的位置交换即可,代码如下:

arr.sort((a, b) => b.date.localeCompare(a.date) || b.time.localeCompare(a.time));console.log(arr);

控制台排序结果:

下期文章将介绍根据中文首字母对数组对象进行排序~

感兴趣的小伙伴可以订阅本专栏,方便后续了解学习~

觉得这篇文章有用的小伙伴们可以点赞➕收藏➕关注哦~

本文链接地址:https://www.jiuchutong.com/zhishi/300631.html 转载请保留说明!

上一篇:文件上传(模板导出、批量导入)(文件上传模板怎么弄)

下一篇:常见经典目标检测算法(经典目标检测算法)

  • 劳务派遣公司如何收费
  • 小规模企业所得税会计分录怎么做
  • 进项税额比销项税额大怎么办
  • 个人社保缴费多少钱一个月
  • 发票已开后 对方公司名称变更怎么处理
  • 特定业务预缴所得税不能填写
  • 收到社保局返还的应届毕业生补贴
  • 税率和征收率的含义和区别
  • 房产一般纳税人每个月报哪些税
  • 资产减值损失和信用损失的区别
  • 一般企业和行政事业单位的资产负债表是否一样
  • 一般户可以结算货款吗
  • 预收账款缴纳企税怎么算
  • 金税三期如何报个税
  • 出口退税管理系统怎么登录
  • 实际结算金额超出出票金额,银行汇票要给收款人么
  • 股权案例分析2020
  • 财付通交易手续费多少
  • 企业所得税年报错了怎么更正
  • 购买方已抵扣开具红字信息表销售方怎么处理
  • 房地产经常发生的法律问题
  • 采购流程会计分录怎么写
  • 收到投标保证金利息会计分录
  • 公司的固定资产是什么
  • word要打印保存在哪个类型
  • 债转股是好还是坏
  • php初学
  • 没有组策略权限
  • 多付货款退回的会计分录
  • win10点击网络属性没反应
  • 存放同业款项和拆出资金在资产负债表中
  • 出口信用保险补贴算不算政府补助
  • wordpresscom
  • php的难点
  • 存货跌价准备是负数表示什么
  • 增值税密码锁定怎么办
  • vports命令怎么用
  • 销售退回的会计科目
  • 免税票如何做会计分录
  • window批处理文件
  • discuz管理中心登陆
  • 票据背书转让会计处理
  • 两个城市的社保可以累计吗
  • 股东分红的会计分录怎么做
  • 增值税减免税在贷方
  • 办公用品普通发票税点多少
  • 小微企业缴纳增值税的账务处理
  • c语言http请求解析表单内容
  • 国家税务总局公告2011年第25号公告
  • 周转材料主要包括什么和什么
  • 以前年度损益调整
  • 公司办公室租金
  • 员工替公司垫付工资违法吗
  • 利润表每股收益增加说明什么
  • java调用jni
  • windows2008版本区别
  • windows server 2003如何安装
  • vcdcontroltool
  • 安装xp后win7不能用怎么办
  • 电脑取消开机密码显示不能改
  • linux extern关键字
  • linux基础常用命令
  • win10应用商店更新比蜗牛还慢
  • find命令支持哪些查找方式
  • Linux如何使用命令
  • unity获取组件的方法
  • z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
  • cocos2dx4.0教程
  • dos 判断
  • python编写api接口
  • jquery轮播图代码
  • 网页js识别设备的唯一性
  • JQuery给select添加/删除节点的实现代码
  • md5加密python
  • 外部js获取当前vue实例
  • 陕西新版电子税务局怎么使用
  • 财税公司销售工作好做么
  • 土地增值税有哪些税收优惠
  • 郑州市地方税务局新郑国际机场分局
  • 福建地税网上办事大厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设