为什么这段代码
["Q", "fP", "AQ", "L"].sort((a,b) => a.localeCompare(b))
给出这个结果:
["AQ", "fP", "L", "Q"]
我认为它会给我这个(这就是我需要的):
["AQ", "L", "Q", "fP"]
所有大写字母都在小写字母之前chortle.ccsu.edu/java5/Notes/chap92/ch92_2.html http://chortle.ccsu.edu/java5/Notes/chap92/ch92_2.html
不要使用localeCompare()
,只需使用sort()
直接地
let myArray = ["Q", "fP", "AQ", "L"];
myArray.sort();
console.log(myArray);
有趣的是,以下内容在 NodeJS 中有效,但在浏览器 JavaScript 中无效。这是因为 ECMAScript 标准没有规定使用哪种排序算法,因此由每个浏览器和/或 NodeJS 来规定
let myArray = ["Q", "fP", "AQ", "L"];
myArray.sort((a, b) => a > b);
console.log(myArray);
NodeJS 演示
https://repl.it/@AnonymousSB/SO53688028 https://repl.it/@AnonymousSB/SO53688028
文档
http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.11 http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.11
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)