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

如何在JavaScript中根据另一个数组对数组进行排序?

按数字数组排序规则排序字符数组的JavaScript实现

没问题,我来帮你把这个C++逻辑转成易懂的JavaScript代码!核心思路就是把数字和对应的字符先配对,按数字排序后再拆分回两个数组,完全匹配你要的效果。

实现代码

function sortArraysByNumbers(numArray, charArray) {
    // 第一步:将数字和对应字符配对成对象数组
    const paired = numArray.map((num, index) => ({
        number: num,
        character: charArray[index]
    }));

    // 第二步:按照数字从小到大排序配对后的数组
    paired.sort((a, b) => a.number - b.number);

    // 第三步:分别提取排序后的数字和字符数组
    const sortedNumbers = paired.map(item => item.number);
    const sortedChars = paired.map(item => item.character);

    return { sortedNumbers, sortedChars };
}

// 测试你的示例输入
const inputNumbers = [2, 1, 5, 4, 9, 3, 6, 7, 10, 8];
const inputChars = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'];

const result = sortArraysByNumbers(inputNumbers, inputChars);

console.log("排序后的数字数组:", result.sortedNumbers);
console.log("对应字符数组:", result.sortedChars);

代码说明

  • 配对数组:用map方法把两个数组的对应位置元素绑定在一起,这样排序时字符能跟着数字走,不会错位。
  • 排序逻辑:sort((a, b) => a.number - b.number)确保是按数字的数值大小排序(如果直接用默认sort()会按字符串排序,比如10会排在2前面)。
  • 拆分数组:排序完成后,再用map分别提取数字和字符,得到最终的两个排序后数组。

运行结果

执行上面的代码后,控制台会输出:

排序后的数字数组: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
对应字符数组: ['B', 'A', 'F', 'D', 'C', 'G', 'H', 'J', 'E', 'I']

完全符合你给出的示例输出!

内容的提问来源于stack exchange,提问作者Mihailo Maksimović

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 13:07:46