按字母顺序比较2个string以进行sorting
我试图比较2个string的sorting目的。 例如,我想要一个布尔检查,如if('aaaa' < 'ab')
。 我试过了,但是没有给我正确的结果,所以我想这不是正确的语法。 我如何在jQuery或Javascript中做到这一点?
让我们看看一些testing用例 – 尝试在JS控制台中运行以下expression式:
"a" < "b" "aa" < "ab" "aaa" < "aab"
所有返回true。
JavaScript比较string和字母“a”在字母“b”之前 – 因此小于。
在你的情况下,它就像这样 –
1。 “aaa”<“a b”
比较前两个“a”字符 – 全部相等,让我们移动到下一个字符。
2。 “a aa”“a b”
比较第二个字符“a”和“b” – 呐喊! “a”在“b”之前。 返回true。
你说的比较是为了sorting的目的。 然后我build议:
"a".localeCompare("b");
它返回-1
因为"a" < "b"
,否则1
或0
,就像你需要Array.prototype.sort()
请记住,sorting依赖于语言环境。 例如在德语中, ä
是a的变体,因此"ä".localeCompare("b", "de-DE")
返回-1
。 在瑞典语中, ä
是字母表中最后一个字母之一,所以"ä".localeCompare("b", "se-SE")
返回1
。
如果没有localeCompare
的第二个参数,则使用浏览器的语言环境。 根据我的经验,这绝不是我想要的,因为那样它的sorting方式与服务器的sorting方式不同,服务器的所有用户都有一个固定的语言环境。
只要记住string比较像“x”>“X”是区分大小写的
"aa" < "ab" //true "aa" < "Ab" //false
"a".localeCompare("b")
实际上应该返回-1
因为b
之前a
sorting