You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何让两个关联对象数组按相同规则同步排序

实现方案

核心逻辑是先保留两个数组的原始索引关联,排序后再根据索引同步重组两个数组,具体代码如下:

// 生成携带原始索引的临时数组
const indexArr = firstArray.map((val, idx) => ({ idx, date: val.date }))

// 按date降序排序临时数组(排序逻辑和你原有逻辑完全一致)
indexArr.sort((a, b) => new Date(b.date) - new Date(a.date))

// 同步生成排序后的两个数组
firstArray = indexArr.map(item => firstArray[item.idx])
secondArray = indexArr.map(item => secondArray[item.idx])

原理解释

直接对firstArray排序会丢失原始索引的对应关系,导致你无法知道排序后的元素原本对应的secondArray位置。上面的方案先把每个元素的原始索引和排序依据的date值绑定在一起排序,排序完成后再按排序后的索引分别提取两个数组的元素,就能保证二者的关联关系完全不变,整体时间复杂度和原生数组排序一致,性能表现优异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:06:04