我希望在javascript中比较两个字符串。我正在使用localeCompare方法,但是输出与预期不符

116457 < 3085
false

"116457" < "3085"
true

"116457".localeCompare("3085")
-1

第二和第三种情况下的输出不符合预期。

我知道它按字典顺序排序,但是我仍然很难理解为什么会这样,以及我该如何克服它。

任何帮助,将不胜感激。

最佳答案

如果要比较它们而不将其转换为数字,则可以在 numeric: true 参数中设置 options

console.log(
  "116457".localeCompare("3085", undefined, { numeric: true })
)
console.log(
  "116457".localeCompare("3085")
)

关于javascript - Javascript比较数字作为字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56988641/

10-09 15:30