gpt4 book ai didi

javascript - 排序错误的 array.Javascript

转载 作者:行者123 更新时间:2023-11-30 07:56:59 26 4
gpt4 key购买 nike

我有以下 javascript 数组:

a=[0, "b", 2, 3, 4, 5, 1, 9, 8, "A", "a", 11010]

现在我想对它进行排序,我是这样做的

a.sort()

但是我得到以下信息:

[0, 1, 11010, 2, 3, 4, 5, 8, 9, "A", "a", "b"]

我认为这是错误的,因为 11010 大于 2,应该在 2 之后。即使我执行以下操作也是如此:

a.sort(function(a,b){return a-b;});

我得到以下信息:

[0, "b", 11010, 2, 3, 4, 1, 8, 9, "A", "a", 5]

有人能解释一下为什么会这样吗?谢谢

最佳答案

问题在于,在排序时,JavaScript 默认将所有数组元素视为字符串。

JavaScript 不像 Haskell 或 Java 那样是类型安全的。这意味着您可以执行各种疯狂的操作,例如添加数字和字符串,或者将字符串与数字进行比较而不会引发错误。

UTF-8 Character Code Table

如您在此表中所见,1 的值为 49,小于小写 a

的值 97

“1”排在“10110”之前,原因与“a”排在“apple”之前相同


This video涵盖了许多由不同类型操作导致的 JavaScript 的非常意想不到的默认模式。

关于javascript - 排序错误的 array.Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37502867/

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