阵列。sort()没有;T排序数字正确[复制]

Some Guy提出了一个问题:Array.sort() doesn't sort numbers correctly [duplicate],或许与您遇到的问题类似。

回答者Jason S给出了该问题的处理方式:

I've tried different numbers, and it always acts as if the 0s aren't there and sorts the numbers correctly otherwise. Anyone know why?

You're getting a lexicographical sort (e.g. convert objects to strings, and sort them in dictionary order), which is the default sort behavior in Javascript:

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort

array.sort([compareFunction])

Parameters

compareFunction

Specifies a function that defines the sort order. If omitted, the array is sorted lexicographically (in dictionary order) according to the string conversion of each element.

In the ECMAscript specification (the normative reference for the generic Javascript), ECMA-262, 3rd ed., section 15.4.4.11, the default sort order is lexicographical, although they don't come out and say it, instead giving the steps for a conceptual sort function that calls the given compare function if necessary, otherwise comparing the arguments when converted to strings:

13\. If the argument comparefn is undefined, go to step 16.
14\. Call comparefn with arguments x and y.
15\. Return Result(14).
16\. Call ToString(x).
17\. Call ToString(y).
18\. If Result(16) < Result(17), return −1.
19\. If Result(16) > Result(17), return 1.
20\. Return +0.

希望本文对你有帮助,欢迎支持JavaScript中文网

原文链接:stackoverflow.com

上一篇:有没有可能在页面加载时从文本输入中删除焦点?
下一篇:如何使量角器按回车键?

相关推荐

  • 齐姐漫画:排序算法(三)之「快排」

    (/public/upload/782bd5bd01ad2529a5be694c03181b79) (/public/upload/7da8caf20d4b7d3a530e81e69b60...

    1 个月前
  • 阵列。push()如果不存在呢?

    ManoDestratarnfeld(https://stackoverflow.com/users/5969411/manodestra)提出了一个问题:Array.push() if does n...

    2 年前
  • 重新排序的数组

    重新排序的数组...

    2 年前
  • 重新排序列表元素- jQuery?[重复]

    FlexoAlex(https://stackoverflow.com/users/168175/flexo)提出了一个问题:reorder list elements jQuery? duplic...

    2 年前
  • 通过SortableJS实现elementUItable拖动效果

    背景 目前elmenetUI的表格是不支持拖动的,但表格行拖动要求往往比较常见。通过引入sortableJS可以方便的让elementUI组件中的table支持拖动效果。

    2 个月前
  • 详解数组Array.sort()排序的方法

    JavaScript中数组的sort()方法主要用于对数组的元素进行排序。其中,sort()方法有一个可选参数。但是,此参数必须是函数。 数组在调用sort()方法时,如果没有传参将按字母顺序(字符编...

    3 年前
  • 记数组sort方法与字符串比较引起的Bug

    前言 前几天使用JavaScript中Array的sort排序字符串,发现排序不准确,这里记一下。 第一版 那就找原因。发现的问题是字符串比较引起的。

    2 年前
  • 计算某地点到当前定位的距离,并重新对数组进行排序

    1.获取当前定位 2.计算距离然后排序 (1)百度到其他大神的计算两个经纬度距离的方法 (2) 调用接口获取到医院的列表,然后取得每个医院的经纬度与用户当前定位的经纬度进行计算 ...

    8 个月前
  • 解剖排序算法

    前言 排序是计算机中对存储的数据执行最常见的操作之一。语法简单,却很精妙。在排序算法中绕不开的是循环,只有在深入学习排序算法时,才发现平时不起眼的循环语句不可小觑。

    1 年前
  • 解决JavaScript中数组排序sort后不发生改变

    最近在做一个项目,Ajax从后台返回数据后,前端用js处理时,发现无论如何使用sort排序,最终要么是没改变,要么只改变最后一次的排序,折腾了很久,最后查了查资料才发现,js中区分浅拷贝和深拷贝。

    23 天前

官方社区

扫码加入 JavaScript 社区