我正在尝试对数组进行排序:
["B3", "D2", "F1", "A9", "D12", "A2", "C1", "Z0", "B1"]
预期的输出应该是:
["Z0", "B1", "C1", "F1", "A2", "D2", "B3", "A9", "D12"]
这是我的代码:
let array = ["B3", "D2", "F1", "A9", "D12", "A2", "C1", "Z0", "B1"];
let collator = new Intl.Collator(undefined, {
numeric: true,
sensitivity: "base",
});
console.log(array.sort(collator.compare));
然后输出首先按字母排序,给出:
["A2", "A9", "B1", "B3", "C1", "D2", "D12", "F1", "Z0"]
所以我发现如果我像这样切换 ever value 的位置:
["3B", "2D", "1F", "9A", "12D", "2A", "1C", "0Z", "1B"]
然后再次将它传递给整理器,它会给我正确的排序顺序,但只是数字和字母被翻转了。然后,我将不得不将它们翻转回来。有没有更好的方法来做到这一点?