gpt4 book ai didi

javascript - 根据另一个数组的排序顺序对数组进行排序的数据结构或过程

转载 作者:行者123 更新时间:2023-11-30 11:13:04 25 4
gpt4 key购买 nike

我将两个数组输入到 Highcharts“系列”参数中,例如:

A = [25, 100, 50, 12]
B = [50, 12, 100, 25]

AB 的顺序对应于图表的 Y 值,所以如果我将 A 排序为以升序排列,B 的顺序必须与 A 的顺序相匹配,变成:

A = [12, 25, 50, 100]
B = [25, 50, 100, 12]

天真的方法只是实现一个接受 2 个数组的基本排序算法,并且对于排序 A 的每一步,它都对 B 忽略它的内容。但这感觉有点愚蠢——我认为实现一个数据结构来关联这两个数组中的值,然后允许我对其中一个参数执行排序似乎更明智。

唯一需要注意的是,我需要一个对象/数据结构,然后我可以从中提取这两个数组,以便将其插入 highcharts。此外,我记得读过 JS 规范并没有说普通 JS 对象需要维护顺序,所以我不确定什么是好的方法。

最佳答案

您可以制作一个包含排序顺序索引的通用排序数组。然后你可以将它映射到你喜欢的任何数组:

let A = [25, 100, 50, 12]
let B = [50, 12, 100, 25]

// sort order based on A will have the indexes in order of A's sort
let sort_order = Array.from(A, (_, i) => i).sort((a,b) => A[a] - A[b])

let A_sorted = sort_order.map(i => A[i])
let B_sorted = sort_order.map(i => B[i])

console.log(A_sorted, B_sorted)

关于javascript - 根据另一个数组的排序顺序对数组进行排序的数据结构或过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52866311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com