Int*_*ser 5 javascript arrays sorting
我有两个数组,数据合并,如:[maximilian,moritz,hans]和[5,1,2000]
现在我必须根据名称的长度对第一个数组进行排序,并将数字保存在正确的位置.结果应该是:[hans,moritz,maximilian] [2000,1,5]
通常,您可以组合两个数组,对它们进行排序然后将它们分开.简单.但在我的情况下,数字有不同的长度,所以不保证正确的顺序.如果我合并然后排序,结果将是:[moritz,hans,maximilian] [1,2000,5],这是错误的.任何人都知道如何解决这个问题?
您可以获取索引,对它们进行排序并映射两个数组的值.
var array1 = ['maximilian', 'moritz', 'hans'],
array2 = [5, 1, 2000],
indices = array1.map((_, i) => i);
indices.sort((a, b) => array1[a].length - array1[b].length);
array1 = indices.map(i => array1[i]);
array2 = indices.map(i => array2[i]);
console.log(array1);
console.log(array2);Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |