You need to enable JavaScript to run this app. 如何使用Lodash或原生JS对二维数组按时间戳升序排序
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Lodash或原生JS对二维数组按时间戳升序排序

按时间戳升序排序二维数组的实现方案

原生JavaScript实现

核心依靠数组原生的sort()方法,传入自定义比较规则实现升序排序:

注意:sort()是原地排序,会直接修改原数组。如果需要保留原数组,可先通过扩展运算符/slice()拷贝后再排序。
额外提示:如果时间戳存储为字符串类型,需要先转为数字再计算差值,例如写法为finalData.sort((a, b) => Number(a[0]) - Number(b[0]))

  • 直接修改原数组的写法:
let finalData = [[1920000000, 273.15], [1620033000, 276.15], [1627700000, 272.15]]
// 按子数组第0位的时间戳升序排序
finalData.sort((a, b) => a[0] - b[0])
  • 保留原数组、生成新排序数组的写法:
let finalData = [[1920000000, 273.15], [1620033000, 276.15], [1627700000, 272.15]]
// 先浅拷贝原数组再排序,不修改原数据
let sortedFinalData = [...finalData].sort((a, b) => a[0] - b[0])

两种写法执行后得到的排序结果均为:

[[1620033000, 276.15], [1627700000, 272.15], [1920000000, 273.15]]

Lodash实现

使用Lodash提供的sortBy/orderBy方法,指定排序依据为子数组的时间戳字段即可,默认按升序排列,且不会修改原数组,直接返回新的排序后数组:

  • 基础sortBy写法:
// 先引入Lodash(按需引入或全量引入均可)
import _ from 'lodash'

let finalData = [[1920000000, 273.15], [1620033000, 276.15], [1627700000, 272.15]]
// 按子数组第0位升序排序
let sortedFinalData = _.sortBy(finalData, item => item[0])
  • 显式指定排序规则的orderBy写法(适合多条件排序场景,单条件也可用):
let sortedFinalData = _.orderBy(finalData, [item => item[0]], ['asc'])

内容的提问来源于stack exchange,提问作者Ethical Hacking

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 14:24:06