gpt4 book ai didi

javascript `localeCompare` 返回不同的值

转载 作者:行者123 更新时间:2023-11-30 12:26:43 25 4
gpt4 key购买 nike

我现在正在使用 javascript string 使用 localeCompare 进行排序,我的数据也将包含多个 null 值.

在比较 stringnull 值时,我发现 localeCompare 有一个奇怪的行为。将字符串值比较到 startswith a/A 到 n/N 时,它工作正常,如下所示。

"n".localeCompare(null) // return -1;
"N".localeCompare(null) // return -1;

但是如果我将空值与 o/O to z/Z 进行比较,它会返回 1

"o".localeCompare(null) // return 1;
"O".localeCompare(null) // return 1;

我知道 localeCompare 可以与 Unicode 进行比较,但为什么会出现上述行为?有什么原因吗?

最佳答案

localeCompare 比较字符串,因此传递给它的任何内容都将转换为字符串,您将从

获得相同的结果
"n".localeCompare("null") // return -1;
"o".localeCompare("null") // return 1;

因为

The localeCompare() method returns a number indicating whether a reference string comes before or after or is the same as the given string in sort order.

MDN

这意味着

"null".localeCompare("null") -> 将返回 0 因为它是相同的字符串
"n".localeCompare("null") -> 将返回 -1,因为它位于 null 之前"o".localeCompare("null") -> 将返回 1,因为它位于 null

之后

关于javascript `localeCompare` 返回不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29100053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com