如果我有一个数组字典,例如:

samples = {
   "labels": ["A", "B", "C"],
   "values": [2, 3, 1]
}


如何按值顺序对列表进行排序?例如,输出为:

samples = {
   "labels": ["C", "A", "B"],
   "values": [1, 2, 3]
}


我是否需要将列表的字典转换成字典列表,按值排序,然后再转换回去,还是有更直接的方法?

最佳答案

您可以对索引进行排序,然后使用排序后的索引获取映射的数组。



var samples = { labels: ["A", "B", "C"], values: [2, 3, 1] },
    indices = [...samples.values.keys()];

indices.sort((a, b) => samples.values[a] - samples.values[b]);

samples.labels = indices.map(i => samples.labels[i]);
samples.values = indices.map(i => samples.values[i]);

console.log(samples);

.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何在字典中对Javascript数组进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59431740/

10-09 01:11