js中array的sort()方法使用介绍

 默认的sort方法并不是按照整形数据来排序,而是用的字符串匹配方式,下面有个不错的示例,大家可以参考下

或许你一直在用javascript中的array的sort. 
 
或许你一直相信它会给你正确的结果。 
 
至少我曾经也是这样认为的,直到有一天,我看到了如下的代码 : 
代码如下:
[5,10,1].sort(); 
 
或许结果有点出人意料。结果如下: 
 代码如下:
[1,10,5] 
 
仔细深究之后,发现原来默认的sort方法并不是按照整形数据来排序,而是用的字符串匹配方式。 
 
换言之就是10 中的这个 1 导致了上面代码的错误。 
 
当然,解决方法有很多,可以给sort方法中传入回调函数。 
 代码如下:
[5,10,1].sort(function(x,y){ 
if(x>y) {return 1; 
}else{ 
return -1 


); 
 
这样就能得到你预期的结果了。 
 
偶然发现,以记录之,防止忘记。 
 

时间: 2024-10-30 19:24:18

js中array的sort()方法使用介绍的相关文章

js中array的sort()方法使用介绍_javascript技巧

或许你一直在用javascript中的array的sort. 或许你一直相信它会给你正确的结果. 至少我曾经也是这样认为的,直到有一天,我看到了如下的代码 : 复制代码 代码如下: [5,10,1].sort(); 或许结果有点出人意料.结果如下: 复制代码 代码如下: [1,10,5] 仔细深究之后,发现原来默认的sort方法并不是按照整形数据来排序,而是用的字符串匹配方式. 换言之就是10 中的这个 1 导致了上面代码的错误. 当然,解决方法有很多,可以给sort方法中传入回调函数. 复制代

js使用Array.prototype.sort()对数组对象排序的方法_javascript技巧

本文实例讲述了js使用Array.prototype.sort()对数组对象排序的方法.分享给大家供大家参考.具体分析如下: 在讲对数组对象进行排序时,我们先来简单的了解一下Array.prototype.sort().sort方法接受一个参数--Function,function会提供两个参数,分别是两个进行比较的元素,如果元素是String类型则通过Unicode code进行比较,如果是Number类型则比较值的大小.如果比较的函数中返回1则两个元素交换位置,0和-1不交换位置.先看一个例

JS 操作Array数组的方法及属性实例

 本篇文章主要是对JS操作Array数组的方法及属性进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 本文总结了Array数组的3个属性,length 属性.prototype 属性.constructor 属性使用,并附注数组对象的8个分类及多个方法使用,具体如下:   对象的3个属性 1.length 属性   length 属性 Length属性表示数组的长度,即其中元素的个数.因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-1.和其他大多数不同的是

JS中数组重排序方法_javascript技巧

1.数组中已存在两个可直接用来重排序的方法:reverse()和sort(). reverse()和sort()方法的返回值是经过排序后的数组.reverse()方法会反转数组项的顺序: var values=[1,2,3,4,5]; values.reverse(); alert(values); //5,4,3,2,1 在默认情况下,sort()方法按升序排列数组,sort()方法会调用每个数组项的toString()转型方法,然后比较得到字符串,确定如何排序.即使数组中的每一项都是数值,s

JS中Array数组的三大属性用法

原文:JS中Array数组的三大属性用法 Array数组主要有3大属性,它们分别是length属性.prototype属性和constructor属性. JS操作Array数组的方法及属性 本文总结了Array数组的3个属性,length属性.prototype属性.constructor属性使用,并附注Array数组对象的8个分类及多个方法使用,具体如下: 对象的3个属性 1.length属性 length属性 Length属性表示数组的长度,即其中元素的个数.因为数组的索引总是由0开始,所以

Node.js中的流(Stream)介绍

 这篇文章主要介绍了Node.js中的流(Stream)介绍,本文讲解了什么是流.pipe方法.流的分类.Readable流状态的切换等内容,需要的朋友可以参考下     什么是流? 说到流,就涉及到一个*nix的概念:管道--在*nix中,流在Shell中被实现为可以通过 |(管道符) 进行桥接的数据,一个进程的输出(stdout)可被直接作为下一个进程的输入(stdin). 在Node中,流(Stream)的概念与之类似,代表一种数据流可供桥接的能力. pipe 流化的精髓在于 .pipe(

js 自带的sort() 方法全面了解_javascript技巧

1. 方法概述 Array的sort()方法默认把所有元素先转换为String再根据Unicode排序, sort()会改变原数组,并返回改变(排序)后的数组 . 2. 例子 2.1 如果没有提供自定义的方法, 数组元素会被转换成字符串,并返回字符串在Unicode编码下的顺序比较结果 var fruit = ['cherries', 'apples', 'bananas']; fruit.sort(); // ['apples', 'bananas', 'cherries'] var scor

js中parseInt()函数使用方法总结(1/2)

parseInt(string, radix) 函数有两个调用方式 1.指定radix,这也是推荐的方式,很不幸我之前都不是这样做的 2.不指定radix,即:parseInt(string).虽然简单,但规则很多,这也是本文阐述内容的核心.   parseInt(string, radix) radix,表示转换的基数,也就是我们常说的2进制.8进制.10进制.16进制等.范围从2~36,但我们在JS中一般调用该方法时,基本都是以10为基数进行转换的. 如果该参数小于 2 或者大于 36,则

用Java集合中的Collections.sort方法如何对list排序(两种方法)_java

第一种是list中的对象实现Comparable接口,如下: /** * 根据order对User排序 */ public class User implements Comparable <user> { private String name; private Integer order; public String getName() { return name; } public void setName(String name) { this.name = name; } publi