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

如何根据另一数组的排序结果对目标数组进行排序?

数组同步排序实现方案

核心思路是先把两个数组的对应元素绑定到一起,按照数值数组的降序规则排序后,再拆分回原数组结构。以下是两种常用编程语言的实现方式:

JavaScript 实现

// 原始数组
const firstArr = ["Pizza", "Pasta", "Chicken Soup", "French Fries"];
const secondArr = [8, 6, 6, 9];

// 1. 将两个数组的对应元素配对
const pairedItems = firstArr.map((item, index) => ({
  name: item,
  value: secondArr[index]
}));

// 2. 按value降序排序
pairedItems.sort((a, b) => b.value - a.value);

// 3. 拆分回两个数组
const sortedFirstArr = pairedItems.map(item => item.name);
const sortedSecondArr = pairedItems.map(item => item.value);

console.log(sortedFirstArr); // ["French Fries", "Pizza", "Chicken Soup", "Pasta"]
console.log(sortedSecondArr); // [9, 8, 6, 6]

Python 实现

# 原始数组
firstArr = ["Pizza", "Pasta", "Chicken Soup", "French Fries"]
secondArr = [8, 6, 6, 9]

# 1. 将两个数组的对应元素配对
paired_items = list(zip(firstArr, secondArr))

# 2. 按数值降序排序
paired_items.sort(key=lambda x: x[1], reverse=True)

# 3. 拆分回两个数组
sorted_first_arr, sorted_second_arr = zip(*paired_items)
# 如需转为列表格式(可选)
sorted_first_arr = list(sorted_first_arr)
sorted_second_arr = list(sorted_second_arr)

print(sorted_first_arr) # ["French Fries", "Pizza", "Chicken Soup", "Pasta"]
print(sorted_second_arr) # [9, 8, 6, 6]

注意点

  • 当数值数组存在重复值时,排序后文本数组里对应重复值的元素会保留原数组中的相对位置(稳定排序),比如示例里两个6对应的Chicken Soup和Pasta顺序和原数组一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 21:39:36