如果我有一个数组字典,例如:
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/