假设我有两个数组:
arr1 = [64, 23, 35, 11, 55];
arr2 = [34, 10, 54, 12, 4];
如果我重新排列(或排序)arr1
,则arr2
的元素也应根据arr1
的位置(或索引)重新排列。
例如:如果我排序arr1
arr1 = [11, 23, 35, 55, 64];
然后arr2
中的元素应为
arr2 : [12, 10, 54, 4, 34 ] (arranged according to index of arr1).
有可能吗?我发现它可以在同一个数组中完成,但我尝试使用两个不同的数组。谢谢你的帮助。
答案 0 :(得分:1)
您可以在排序第一个数组之前存储原始位置,然后将其应用于第二个数组:
// Wrap original positions and values:
const withPos = arr1.map((v, i) => ({v, i}));
// Sort
withPos.sort((a, b) => a.v - b.v);
// Unwrap & apply sort to second array:
arr1 = withPos.map(e => e.v);
arr2 = withPos.map(e => arr2[e.i]);