sam*_*old 87 javascript jquery
我正在尝试按字母顺序比较2个字符串以进行排序.例如,我想要一个布尔检查if('aaaa' < 'ab')
.我试过了,但它没有给我正确的结果,所以我猜这不是正确的语法.我如何在jquery或Javascript中执行此操作?
Pet*_*rch 115
你说比较是为了排序目的.然后我建议:
"a".localeCompare("b");
Run Code Online (Sandbox Code Playgroud)
它返回-1
因为"a" < "b"
,1
或0
以其他方式,像你需要Array.prototype.sort()
请记住,排序依赖于语言环境.例如德语,ä
是变体a
,所以"ä".localeCompare("b", "de-DE")
返回-1
.在瑞典语中,ä
是字母表中的最后一个字母,所以"ä".localeCompare("b", "se-SE")
返回1
.
如果没有第二个参数localeCompare
,则使用浏览器的语言环境.根据我的经验,这绝不是我想要的,因为它将与服务器排序不同,服务器具有适用于所有用户的固定语言环境.
Lix*_*Lix 102
让我们看一些测试用例 - 尝试在JS控制台中运行以下表达式:
"a" < "b"
"aa" < "ab"
"aaa" < "aab"
Run Code Online (Sandbox Code Playgroud)
一切都归于真实.
JavaScript逐字符地比较字符串,字母表中的"a"在"b"之前 - 因此小于.
在你的情况下,它的工作原理如下 -
1." 一个 AAA"< " 一 B"
比较前两个"a"字符 - 全部相等,让我们移动到下一个字符.
2."一个一个 AA" <"一个b "
将第二个字符"a"与"b"进行比较 - 呐喊!"a"出现在"b"之前.返回true.
Sie*_*elu 29
请记住,像"x">"X"这样的字符串比较是区分大小写的
"aa" < "ab" //true
"aa" < "Ab" //false
Run Code Online (Sandbox Code Playgroud)
您可以使用.toLowerCase()
比较而不区分大小写.
小智 10
假设我们有一个对象数组,例如:
{ name: String }
Run Code Online (Sandbox Code Playgroud)
然后我们可以按如下方式对数组进行排序:
array.sort((a, b) => {
if (a.name === b.name) return 0;
return a.name > b.name ? 1 : -1;
});
Run Code Online (Sandbox Code Playgroud)
注意:请小心大写字母。根据目的,您可能需要将字符串转换为小写。
归档时间: |
|
查看次数: |
88287 次 |
最近记录: |