sort()的多种用法

sort()  方法用于对数组的元素进行排序。

一、默认情况

在默认情况下, sort() 方法按升序排列数组项。为了实现排序, sort() 方法会调用每个数组项的 toString() 转型方法,然后比较得到的字符串,已确定如何排序。如下:

1 var values = ["orange","apple","banana"];
2 values.sort();
3 console.log(values);//结果["apple", "banana", "orange"]

但是,即使数组中的每一项都是数值,sort() 方法比较的也是字符串,如下:

1 var values = [0,1,5,10,15];
2 values.sort();
3 console.log(values);//结果[0, 1, 10, 15, 5]

二、对数值进行排序

sort() 方法可以接收一个比较函数作为参数。

比较函数接收两个参数,如果第一个参数应该位于第二参数之前则返回一个负数,如果两个参数相等则返回0,如果第一个参数位于第二个之后则返回一个正数。

1 function compare(a, b){
2     return (a - b);
3 }//按升序排列的比较函数
4 var values = [0,1,5,10,15];
5 values.sort(compare);
6 console.log(values);//结果[0, 1, 5, 10, 15]

三、根据某个对象属性对数组进行排序

先定义一个函数,它接收一个属性名,然后根据这个属性名来创建一个比较函数。下面是这个函数的定义:

 1 function createComparisonFunction(propertyName){
 2     return function(object1, object2){
 3         var a = object1[propertyName];
 4         var b = object2[propertyName];
 5
 6         if(a < b){
 7             return -1;
 8         }else if(a > b){
 9             return 1;
10         }else{
11             return 0;
12         }
13     }
14 }//返回一个根据属性名创建的按升序排列的比较函数

在内部函数接收到propertyName参数后,它会使用方括号表示法来取得给定属性的值。

上面这个函数可以在像在下面例子中这样使用。

1 var data = [{name:"Lily", age: 12}, {name:"Judy", age: 22}];
2 data.sort(createComparisonFunction("name"));
3 console.log(data[0].name);//Judy
4
5 data.sort(createComparisonFunction("age"));
6 console.log(data[0].name);//Lily
时间: 2024-08-03 23:14:41

sort()的多种用法的相关文章

C/C++ sort函数的用法

sort函数的用法(#include<algorithm>) 做ACM题的时候,排序是一种经常要用到的操作.如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错.STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n).使用这个函数,需要包含头文件.    这个函数可以传两个参数或三个参数.第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址.也就是说,排序的区间是[a,b).简单来说,有一个数组int a[100

Android之Notification的多种用法

[置顶] Android之Notification的多种用法 标签: notification 2013-12-27 18:18 59635人阅读 评论(16) 收藏 举报  分类: android编程笔记(46)  版权声明:本文为博主原创文章,未经博主允许不得转载. 我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一个短信的小图标提示啊?你是不是也想实现这种功能呢?今天的Notification就是解决这个问题的. 我们也知道Android系统也是在

cut 和sort 常用的用法

cut 是一个截取命令,截取字段中想要的部分 cut  [选项] [文件] 主要参数 -b: 以字节为单位分割,后面跟一个数字    -b  3 -c:以字符为单位分割,后面跟一个数字    -c  3 -d:可指定分隔符,默认为制表符 -f:指定截取的字段,与-d同时使用 -n:取消分隔多字节分隔符 例: cat 1.txt (1)    cut  -b 3  1.txt  表示以字节定位第三个字节 但是通常cut是和其他命令配合使用 如:cat 1.txt |cut -b 3 1.txt (

C++ sort函数的用法

C++ sort函数的用法 STL有个排序函数sort,可以直接对数组和向量排序. 一.功能:给定区间所有元素进行排序 二.头文件: #include <algorithm> 三.sort函数的参数:可以传两个参数或三个参数. 第一个参数:要排序的区间首地址, 第二个参数:区间尾地址的下一地址.也就是说,排序的区间是[a,b). 例如:数组int a[100],sort(a,a+100)是对从a[0]到a[99]的元素进行排序,默认的排序方式是升序. 对向量v排序:sort(v.begin()

splice的多种用法

(一)splice的多种用法: splice(n,m) 从索引n开始删除m个.返回删除项组成新数组 splice(n) 从索引n开始删除到末尾 splice(n,m,x) 从索引n开始删除m个,并且把x插入到删除的位置 splice(n,0,x) 把x插入到索引n的前面 (二)用splice模拟数组的其它方法: push: splice(ary.length,0,x) unshift: splice(0,0,x) shift: splice(0,1) pop: splice(ary.length

javascript中的location.href有很多种用法

javascript中的location.href有很多种用法,主要如下. self.location.href="/url" 当前页面打开URL页面 location.href="/url" 当前页面打开URL页面 windows.location.href="/url" 当前页面打开URL页面,前面三个用法相同. this.location.href="/url" 当前页面打开URL页面 parent.location.h

C++sort()函数的用法

C++sort()函数的用法 (一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高! (二)c++标准库里的排序函数的使用方法 I)Sort函数包含在头文件为#include<algorithm>的c++标准库中,调用标准库里的排序方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可

Android之Notification的多种用法(转)

我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一个短信的小图标提示啊?你是不是也想实现这种功能呢?今天的Notification就是解决这个问题的. 我们也知道Android系统也是在不断升级的,有关Notification的用法也就有很多种,有的方法已经被android抛弃了,现在我实现了三种不同的方法,并适应不同的android版本.现在我就把代码公布出来,我喜欢把解释写在代码中,在这里我就不多说了,先看效果图: package net.loong

python中List的sort方法的用法

python列表排序 简单记一下python中List的sort方法(或者sorted内建函数)的用法. 关键字: python列表排序 python字典排序 sorted List的元素可以是各种东西,字符串,字典,自己定义的类等. sorted函数用法如下: Python代码   sorted(data, cmp=None, key=None, reverse=False) 其中,data是待排序数据,可以使List或者iterator, cmp和key都是函数,这两个函数作用与data的元