我正在尝试在 JavaScript 中按字母顺序对数组进行排序。我减小了数组的大小以进行测试和可读性(原始数组并没有那么大,但仍然遇到相同的问题)。问题是输出在列表顶部有一些不按顺序排列的值。我尝试在几个不同的循环中多次运行排序,但似乎仍然无法正确排序。我环顾四周,大多数答案都是关于基本语法的。我已经对数字和其他类似的列表进行了排序,所以我很困惑。
提前致谢。
这是我的代码:
var miniArr = ['leatherwood', 'sacramento', 'ackerman', 'alma', 'anderson', 'ben wheeler', 'atlanta', 'bakersfield', 'albuquerque', 'baker', 'aspen', 'anchorage', 'antioch', 'benton', 'cedar rapids', 'el cajon', 'boca raton', 'falcon', 'crestview', 'ceres', 'deep run', 'fresno', 'eugene', 'fayetteville', 'fairfield', 'fort myers', 'butler', 'eunice', 'cary', 'cincinnati', 'buffalo', 'freedom (watsonville)', 'francis creek', 'boulder', 'fort worth', 'edgartown', 'bonita', 'glen spey', 'grants pass', 'cleveland', 'clinton', 'colonia', 'chula vista', 'gulf breeze', 'lakeland', 'la mesa', 'jasper', 'haverhill', 'ingleside (canada)', 'joplin', 'hancock', 'pasadena', 'loveland', 'london (canada)', 'lompoc', 'lemon grove', 'park city']
var sorted = [];
var sorted2 = []
for (var x = 0; x < 100; x++) {
sorted = miniArr.sort((a, b) => a > b);
}
for (var x = 0; x < 100; x++) {
sorted2 = sorted.sort((a, b) => a > b);
}
console.log(sorted);
console.log(sorted2);
最佳答案
对于字符串,请使用localeCompare()
:
var miniArr = ['leatherwood', 'sacramento', 'ackerman', 'alma', 'anderson', 'ben wheeler', 'atlanta', 'bakersfield', 'albuquerque', 'baker', 'aspen', 'anchorage', 'antioch', 'benton', 'cedar rapids', 'el cajon', 'boca raton', 'falcon', 'crestview', 'ceres', 'deep run', 'fresno', 'eugene', 'fayetteville', 'fairfield', 'fort myers', 'butler', 'eunice', 'cary', 'cincinnati', 'buffalo', 'freedom (watsonville)', 'francis creek', 'boulder', 'fort worth', 'edgartown', 'bonita', 'glen spey', 'grants pass', 'cleveland', 'clinton', 'colonia', 'chula vista', 'gulf breeze', 'lakeland', 'la mesa', 'jasper', 'haverhill', 'ingleside (canada)', 'joplin', 'hancock', 'pasadena', 'loveland', 'london (canada)', 'lompoc', 'lemon grove', 'park city']
var sorted = [];
var sorted2 = []
for (var x = 0; x < 100; x++) {
sorted = miniArr.sort((a, b) => a.localeCompare(b));
}
console.log(sorted);
关于JavaScript 按字母顺序排序不对所有值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54206990/