js中sort函数用法总结_sort排序算法原理

时间: 2018-10-16阅读: 4891标签: 函数

 js中sort方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串Unicode码点。


sort的语法 

arrayObject.sort(sortby)

参数sortby:可选。用于规定排序顺序,必须是函数

注:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。  


默认按照字母顺序排序  

var arr1 = ['a', 'd', 'c', 'b'];
arr.sort();  //['a', 'b', 'c', 'd']
 
var arr2 = [10, 5, 40, 25, 100, 1];
arr2.sort(); //[1, 10 ,100, 25, 40, 5] 这次排序似乎没有得到想要的结果

如果要得到自己想要的结果,不管是升序还是降序,就需要提供比较函数了。该函数比较两个值的大小,然后返回一个用于说明这两个值的相对顺序的数字。

比较函数应该具有两个参数 a 和 b,其返回值如下:

若 a 小于 b,即 a - b 小于零,则返回一个小于零的值,数组将按照升序排列。
若 a 等于 b,则返回 0。
若 a 大于 b, 即 a - b 大于零,则返回一个大于零的值,数组将按照降序排列。


按照数值大小进行排序-升序

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


按照数值大小进行排序-降序

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


按照数组中对象的某一个属性值进行排序

var arr = [
    {name:'zopp',age:0},
    {name:'gpp',age:18},
    {name:'yjj',age:8}
];
function compare(property){
    return function(a,b){
        var value1 = a[property];
        var value2 = b[property];
        return value1 - value2;
    }
}
console.log(arr.sort(compare('age')))


让数组乱序

arr.sort(function(a,b){
	return Math.random() - 0.5;
})


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/1151

关闭

深入理解JavaScript函数

两种定义形式: 通过函数定义表达式来定义,通过函数声明语句来定义。tips:以表达式方式定义的函数(特别适合用来定义那些只会用到一次的函数),函数名是可选的

高阶函数 - Higher Order Function

一个函数 如果输入参数包含函数 或 返回值包含函数,就称为高阶函数。按fn与fn功能是否一致【即相同输入是否始终对应相同输出】,把这类高阶函数的作用分为两类:

Js的函数申明、函数表达式、箭头函数

函数声明和表达式之间的差别是:JavaScript 解释器中存在一种变量声明被提升的机制,也就是说函数声明会被提升到作用域的最前面,即使写代码的时候是写在最后面,也还是会被提升至最前面。而用函数表达式创建的函数是在运行时进行赋值

初识云函数

什么是云函数?云函数提供了一种直接在云上运行,无状态的、短暂的、由事件触发的代码的能力,云函数与轻服务的关系:云函数,就是FaaS模式的具体实现。同样,对象存储、数据库应用、缓存服务等,是BaaS模式的具体实现。对于轻服务,BaaS和FaaS缺一不可

什么场景不适合箭头函数

这些年来,ES6 将 JS 的可用性提升到一个新的水平时: 箭头函数、类等等,这些都很棒。箭头函数是最有价值的新功能之一,有很多好文章描述了它的上下文透明性和简短的语法。

Js函数式编程,给你的代码增加一点点函数式编程的特性

给你的代码增加一点点函数式编程的特性,最近我对函数式编程非常感兴趣。这个概念让我着迷:应用数学来增强抽象性和强制纯粹性,以避免副作用,并实现代码的良好可复用性。同时,函数式编程非常复杂。

javascript replace高级用法

在前端与后台交互的时候我们通常都需要将后台传递的数据绑定到html中,这个绑定数据的方式我们通常是使用jQuery或者使用原生的innerHTML进行绑定,当然也可以使用artTemplate模板来绑定数据,那么artTemplate模板它绑定数据的原理是什么呢?其实它就是利用了replace()方法。

JS高阶函数reduce()的常用场景

reduce()语法:必需。初始值, 或者计算结束后的返回值。 数组求和;数组最大值;数组去重;计算数组中每个元素的出现的次数

JS 高阶函数

什么是函数?在大多数编程语言中,函数是一段独立的代码块,用来抽象处理某些通用功能的方法;主要操作是给函数传入特定对象(参数),并在方法调用结束后获得一个新的对象

JavaScript中的高阶函数

在 JavaScript 的学习过程中,我们可能或多或少地接触过高阶函数。那么,我们自己对此是否有一个明确的定义,或者说很熟练的掌握这些用法呢

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!