【发布时间】:2018-09-03 06:47:34
【问题描述】:
我正在尝试在 JS 中按字母顺序对字符串数组进行排序。一些数组项只是字符串'-'。通常这些值在字母搜索中出现在“a”之前,但我希望“-”出现在末尾。有没有办法给一个字符一个特定的 unicode 值,以便您可以自定义排序结果?
【问题讨论】:
标签: javascript sorting unicode
我正在尝试在 JS 中按字母顺序对字符串数组进行排序。一些数组项只是字符串'-'。通常这些值在字母搜索中出现在“a”之前,但我希望“-”出现在末尾。有没有办法给一个字符一个特定的 unicode 值,以便您可以自定义排序结果?
【问题讨论】:
标签: javascript sorting unicode
您可以通过提供排序回调并检查"-"来完全自定义排序结果:
yourArray.sort((left, right) => {
if (left === "-") {
return right === "-" ? 0 : 1;
}
return right === "-" ? -1 : left.localeCompare(right);
});
现场示例:
const yourArray = [
"testing",
"-",
"one",
"-",
"two",
"three"
];
yourArray.sort((left, right) => {
if (left === "-") {
return right === "-" ? 0 : 1;
}
return right === "-" ? -1 : left.localeCompare(right);
});
console.log(yourArray);
更多on MDN.
【讨论】: