Isa*_*ton 1 javascript arrays sorting
我有两个数组
[10,8,0,5,3]
[2,4,1,1,3]
Run Code Online (Sandbox Code Playgroud)
我想将第一个数组按降序排序,所以它变成了[10,8,5,3,0]. [0, 1, 2, 3, 4]排序后的第一个数组的原始索引变为[0, 1, 3, 4, 2]例如,原始数字5在第三个索引中,排序后,它来到2索引。现在,我想将排序后的索引应用于第二个数组[2,4,1,1,3],所以它变成了[2, 4, 1, 3, 1]有没有一种快速简便的方法来做到这一点?
到目前为止,我提出了 2 个解决方案:
{'10': 2, '8': 4, '0': 1, '5': 1, '3':3 }`
Run Code Online (Sandbox Code Playgroud)
然后根据键值对对象进行排序。然后对值进行排序,然后从对象中检索所有值。
这两种方法看起来有点复杂。我想知道是否有更简单的方法,例如利用 array.sort() 函数
如果将数组压缩到一个数组中,其中每个项目都包含i来自两个数组的第 th 个值,则可以很容易地对较大的数组进行排序:
const arr1 = [10,8,0,5,3];
const arr2 = [2,4,1,1,3];
const zipped = arr1.map((num, i) => [num, arr2[i]]);
zipped.sort((a, b) => b[0] - a[0]);
console.log(zipped.map(arr => arr[0]));
console.log(zipped.map(arr => arr[1]));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35 次 |
| 最近记录: |