Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >js 对象数组的排序问题

js 对象数组的排序问题

作者头像
且陶陶
发布于 2023-04-12 07:55:58
发布于 2023-04-12 07:55:58
4.9K00
代码可运行
举报
文章被收录于专栏:Triciaの小世界Triciaの小世界
运行总次数:0
代码可运行

一个对象数组,按照不同的属性进行排序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*
 * @Author: Tricia
 * @Date: 2023-01-30 14:51:19
 * @Description: 获取最新时间的数据
 */
let data = [
  {
    index_name: '交易',
    index_value: 1897,
    biz_dt: '2023-01-10T01:37:15.000Z',
  },
  {
    index_name: '交易',
    index_value: 1000,
    biz_dt: '2023-01-10T01:38:15.000Z',
  },
  {
    index_name: '交易',
    index_value: 1669,
    biz_dt: '2023-01-09T01:38:15.000Z',
  },
]

// 对象数组比较函数(默认升序)
function compareVal(k, order = 'asc') {
  // k  属性的键,order  排序方式
  return function innerSort(a, b) {
    if (!a.hasOwnProperty(k) || !b.hasOwnProperty(k)) {
      // 该属性在任何对象上都不存在(即错误的属性)
      return 0
    }
    // 判断要对比的属性的格式,字符串还是数字
    const val1 = typeof a[k] === 'string' ? a[k].toUpperCase() : a[k]
    const val2 = typeof b[k] === 'string' ? b[k].toUpperCase() : b[k]

    let comparison = 0
    if (val1 > val2) {
      comparison = 1
    } else if (val1 < val2) {
      comparison = -1
    }
    return order === 'desc' ? comparison * -1 : comparison
  }
}

let res1 = data.sort(compareVal('biz_dt', 'desc'))
// ,res2 = data.sort(compareVal('index_value'))

console.log('res1:', res1)

结果如下

res1

res2

参考:https://www.sitepoint.com/sort-an-array-of-objects-in-javascript/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Javascript中的数组对象排序(转载)
js中用方法sort()为数组排序。sort()方法有一个可选参数,是用来确定元素顺序的函数。如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进行排序。如:
李维亮
2021/07/08
8.5K0
42个实用的JavaScript优化技巧
我一直喜欢报纸之类的东西,可以在较短的时间内提供足够的信息。在这里,我为前端开发优化创建了一个新的学习列表。
前端达人
2021/05/11
12K0
对象数组自定义排序
给定一个对象数组,要求按照指定的顺序进行排序展示。 如[ { name: '一', value: 1, }, { name: '二', value: 2, }, { name: '三', value: 3, }, ] 要求按照name值 二 、 一 、 三 排序
且陶陶
2023/04/12
6830
对象数组自定义排序
JS-比较函数中嵌套函数,可以排序【对象数组】
1 function createCompareFun(propertyName){ 2 return function(object1,object2){ 3 var value1 = object1[propertyName]; 4 var value2 = object2[propertyName]; 5 if(value1>value2){
xing.org1^
2018/05/17
5.1K0
Js Array对象
1、该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组。
hss
2022/02/25
7.8K0
mysql 隐式转换_js强制转换和隐式转换
什么鬼,明明查的是204027026112927603,为什么204027026112927605也出来了
全栈程序员站长
2022/11/07
5K0
mysql 隐式转换_js强制转换和隐式转换
mysql varchar类型字段为数字时,不带引号查询时查询结果与事实不符
今天出现了一个bug,在数据库中我们将订单表中的order_no从之前的bigint(20)改成varchar(20)后,原有的代码逻辑在进行时查询时,之前是以Long类型传参查询的。
翎野君
2023/05/12
1.6K0
mysql varchar类型字段为数字时,不带引号查询时查询结果与事实不符
将Js数组对象中的某个属性值升序排序,并指定数组中的某个对象移动到数组的最前面
  本篇文章主要实现的是将一个数组的中对象的属性值通过升序的方式排序,然后能够让程序可以指定对应的数组对象移动到程序的最前面。
追逐时光者
2020/07/28
12.9K0
数组、字符串方法大全
delete:删除键值对的方式也可以删除数组中的对应项,不会改变数组中原有项的索引
星辰大海c
2023/11/20
2100
数组、字符串方法大全
C1 能力认证——JS基础
C1 能力认证——JS基础 JavaScript变量命名规则 在JavaScript中以下,以下哪些变量名是非法的(会导致程序报错)? 1person name var $orderwera23 uiuiuqwer4_23aser2 1person var # 不能以数字开头,和关键字命名 在JavaScript中,以下哪些变量名不建议使用? 1person name var $orderwera23 uiuiuqwer4_23aser2 iperson var $orderw
HammerZe
2022/03/24
1.5K0
C1 能力认证——JS基础
Python中12个常用模块的使用教程
仅拷贝状态的信息,包括:mode bits, atime, mtime, flags
Python学习者
2022/12/08
1.1K0
简单理解 V8 Turbofan
作者:TokameinE@知道创宇404实验室 日期:2022年7月19日 “JavaScript代码本身就是一个二进制程序。” 不知道读者是否在什么地方听说过这样的解释,但笔者认为这个形容相当生动。因为JavaScript的代码是懒惰解释的,只有在特定函数被执行时候,解释器才会对这部分代码进行解释,生成对应的字节码。但这些字节码会随着代码的运行而产生变动,同一份代码有可能在同一次执行中,由于动态优化的缘故而被解释为两段相差甚大的字节码。不知道您现在是否对这句话有了一点体会。在某些文章中我们甚至能看见这样的
Seebug漏洞平台
2022/07/19
1.5K0
简单理解 V8 Turbofan
域环境权限提升中组策略的简单使用
Group Policy Objects 是用于存储 Active Directory 中的策略,便于管理域中的计算机和用户。值得注意的是,默认情况,域用户的组策略是 90 分钟更新一次,有 0-30 分钟的随机偏移,域控的则为 5 分钟更新一次。通过组策略可以下发计划任务,更新防火墙配置等等操作。
信安之路
2022/02/11
1.3K0
域环境权限提升中组策略的简单使用
如何对Scala中集合(Collections)进行排序
文章标题: 《如何对Scala中集合(Collections)进行排序》 本文链接: http://www.iteblog.com/archives/1171 下面是一系列对 Scala 中的Lists、Array进行排序的例子,数据结构的定义如下: // data structures working with val s = List( "a", "d", "F", "B", "e") val n = List(3, 7, 2, 1, 5) val m = Map( -2 -> 5,
Albert陈凯
2018/04/04
2K0
JS 数组、对象的深拷贝
以上是简单数组、对象的深拷贝方法,但是对于二维数组、对象数组、对象里包含对象,以上方法均达不到深拷贝方法
Krry
2019/04/23
8.4K0
32个手撕JS,彻底摆脱初级前端(面试高频)
作者:洛霞 https://juejin.im/post/6875152247714480136
前端达人
2020/11/11
1.9K0
32个手撕JS,彻底摆脱初级前端(面试高频)
「面试」45 道牛客网 JavaScript 经典题总结(8500字)
牛客网的45道JS能力评测题个人觉得是非常好的45道js基础检测题,基本就是对自己的JavaScript基础做一个比较全面的评估,包括if语句、循环体、基础操作符、setInterval、setTimeout、流程控制、常用数组方法及es6相关(解构、Map、Set、...等)。之前我已经做过一遍了,我记得以前牛客网不支持es6的写法,这两天花了点时间把所有题目又做了一遍,发现支持es6了。这次每个题目我都尽力用了不同的方法实现,建议各位看官收藏,需要的时候方便查看。当然如果你有更好更新颖的实现方法,欢迎评论区留言交流。
coder_koala
2020/07/15
1.1K0
「面试」45 道牛客网 JavaScript 经典题总结(8500字)
前端一面必会手写面试题(边面边更)4
函数柯里化概念: 柯里化(Currying)是把接受多个参数的函数转变为接受一个单一参数的函数,并且返回接受余下的参数且返回结果的新函数的技术。
helloworld1024
2023/01/06
3260
推荐系统实战-基于用户的协同过滤
1、数据集简介 MovieLens数据集包含多个用户对多部电影的评级数据,也包括电影元数据信息和用户属性信息。 这个数据集经常用来做推荐系统,机器学习算法的测试数据集。尤其在推荐系统领域,很多著名论文都是基于这个数据集的。(PS: 它是某次具有历史意义的推荐系统竞赛所用的数据集)。 下载地址为:http://files.grouplens.org/datasets/movielens/,有好几种版本,对应不同数据量,本文所用的数据为1M的数据。 2、数据介绍 1m的数据解压后,可以看到四个主要的csv文件,
石晓文
2018/04/11
2.5K1
推荐系统实战-基于用户的协同过滤
C++版 - 剑指offer 面试题34:寻找丑数(Leetcode 263.Ugly number)解题报告
剑指offer 面试题34:寻找丑数 题目:把质数因子只包含2、3和5的正整数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。
Enjoy233
2019/03/05
8590
相关推荐
Javascript中的数组对象排序(转载)
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验