Sort()函数的多种用法

 更新时间:2016年03月20日 20:02:05   作者:oSHYo  
sort() 方法用于对数组的元素进行排序。接下来通过本文给大家介绍Sort()函数的多种用法,对sort函数的用法相关知识感兴趣的朋友一起学习

sort() 方法用于对数组的元素进行排序。包含于头文件algorithm

语法

arrayObject.sort(sortby)

参数 描述
sortby 可选。规定排序顺序。必须是函数。

返回值

对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

一、默认情况

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

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

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

var values = [,,,,];
values.sort();
console.log(values);//结果[, , , , ]

二、对数值进行排序

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

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

function compare(a, b){
return (a - b);
}//按升序排列的比较函数
var values = [,,,,];
values.sort(compare);
console.log(values);//结果[, , , , ]

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

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

function createComparisonFunction(propertyName){
return function(object, object){
var a = object[propertyName];
var b = object[propertyName];
if(a < b){
return -;
}else if(a > b){
return ;
}else{
return ;
}
}
}//返回一个根据属性名创建的按升序排列的比较函数

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

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

var data = [{name:"Lily", age: }, {name:"Judy", age: }];
data.sort(createComparisonFunction("name"));
console.log(data[].name);//Judy
data.sort(createComparisonFunction("age"));
console.log(data[].name);//Lily

以上内容是小编给大家介绍的Sort()函数的多种用法,希望对大家以上帮助!

相关文章

  • 浅析JavaScript中五种模块系统的使用

    浅析JavaScript中五种模块系统的使用

    模块系统是什么?简单来说,其实就是我们在一个文件里写代码,声明一些可以导出的字段,然后另一个文件可以将其导入并使用。今天我们来聊聊 JavaScript 的模块系统,感兴趣的可以了解一下
    2022-11-11
  • JS实现非首屏图片延迟加载的示例

    JS实现非首屏图片延迟加载的示例

    下面小编就为大家分享一篇用JS实现非首屏图片延迟加载的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • input输入框鼠标焦点提示信息

    input输入框鼠标焦点提示信息

    本文给大家分享的是一则非常常用和实用的小技巧,当鼠标点击到输入框(input)里的时候,输入框的提示消失,鼠标再移开,输入框提示出现,推荐给小伙伴们
    2015-03-03
  • JavaScript运行机制之事件循环(Event Loop)详解

    JavaScript运行机制之事件循环(Event Loop)详解

    这篇文章主要介绍了JavaScript运行机制之事件循环(Event Loop)详解,本文从多个方面讲解了Event Loop,需要的朋友可以参考下
    2014-10-10
  • 基于jquery实现导航菜单高亮显示(两种方法)

    基于jquery实现导航菜单高亮显示(两种方法)

    本篇文章是基于jquery实现导航菜单高亮显示,当点击不同导航菜单实现当前点击的菜单是高亮的,有需要的朋友可以关注下本文
    2015-08-08
  • 纯JS前端实现分页代码

    纯JS前端实现分页代码

    这篇文章主要介绍了纯JS前端实现分页代码的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • JS实现队列与堆栈的方法

    JS实现队列与堆栈的方法

    这篇文章主要介绍了JS实现队列与堆栈的方法,结合实例形式分析了JavaScript实现队列与堆栈的原理与相关实现技巧,需要的朋友可以参考下
    2016-04-04
  • javascript 变量作用域 代码分析

    javascript 变量作用域 代码分析

    作用域(scope)是javascript中一项令人棘手的的特性。所有面向对象编程语言都有某种形式的作用域,不过和把这个概念放在什么上下文中有关。在javascript里,作用域是由函数划分的。
    2009-06-06
  • 解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题

    解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题

    今天小编就为大家分享一篇解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • TypeScript中的类

    TypeScript中的类

    这篇文章主要介绍了TypeScript中的类,类这个概念基本是所有面向对象编程语言都具有一个概念,JavaScript中ES6 之前是没有类这个概念,下面文章围绕TypeScript类的相关资料展开内容,需要的朋友可以参考一下
    2021-12-12

最新评论