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

基于另一数组排序规则实现数组同步排序

同步排序两个关联数组的简洁方案

实现思路

将两个数组的对应索引元素绑定成配对结构,排序后再拆分回原数组,从根源上避免indexOf()处理重复元素时的匹配错误问题。

代码实现

const arr1 = [4,2,3,5,1];
const arr2 = ['a','b','c','d','e'];

// 把两个数组的对应元素配对
const pairedItems = arr1.map((num, idx) => [num, arr2[idx]]);

// 按arr1的元素从小到大排序配对后的数组
pairedItems.sort((itemA, itemB) => itemA[0] - itemB[0]);

// 拆分回两个独立数组
const sortedArr1 = pairedItems.map(item => item[0]);
const sortedArr2 = pairedItems.map(item => item[1]);

console.log(sortedArr1); // 输出: [1,2,3,4,5]
console.log(sortedArr2); // 输出: ['e','b','c','a','d']

关键说明

  • 用map建立配对关系时,每个元素的对应索引被永久绑定,不受排序影响
  • 排序仅针对配对后的数组的第一个元素(即原arr1的数值),排序逻辑和原生sort一致,无需手动实现排序算法
  • 即使arr1存在重复元素,配对结构也能保证arr2的元素始终和原arr1的对应元素绑定,不会出现匹配错位

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:20:55