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

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

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

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

js中函数的原型

js中每一个构造函数都有一个prototype的属性,prototype指向一个对象,而这个对象的属性和方法都会被构造函数的实例所继承,因此,需要一些共享的属性和方法可以写在构造函数的原型中

云函数

云函数提供了一种 直接在云上运行,无状态的、短暂的、由事件触发的代码 的能力。ServerLess,即无服务器架构,也叫轻服务,它包含两个部分,如下:

getter 和 setter 和 defineProperty

getter:将对象属性绑定到查询该属性时将被调用的函数,说人话就是,当你调用一个getter属性时会调用定义好的get函数,这个函数会返回一些运算结果的值(一般是用其他属性作为运算值),这个值就作为你调用的这个属性的值。

js函数

在JavaScript中,函数其实就是对象。使函数不同于其他对象的决定性特点是函数存在一个被称为[[Call]]的内部属性。内部属性无法通过代码访问而是定义了代码执行时的行为。ECMAScript为JavaScript的对象定义了多种内部属性

ES6函数的扩展

在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。与解构赋值默认值结合使用参数默认值可以与解构赋值的默认值结合使用。

JS 中构造函数和普通函数的区别

构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写、构造函数和普通函数的区别在于:调用方式不一样。作用也不一样(构造函数用来新建实例对象)

为什么要去学习函数式编程

函数式编程比较复杂比较枯燥,但是为了了解react和redux,如果没有函数式编程的理论铺垫,很难学好他们。函数式编程在js当中是一个比较抽象的概念

JS函数提升和变量提升

函数声明(function declaration),通过function 关键字,functionName函数名,arg参数(可选)定义的函数。函数表达式: 将函数声明赋值给一个变量,这个表达式叫做函数表达式

es6 函数的扩展

我们都知道声明函数可以设置形参,但你有没有想过形参也可以直接设置默认值,我们接下来看看如何去写,rest 参数官方注解:ES6 引入 rest 参数(形式为...变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。

Js中函数的5个高级技巧

函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。函数对任何一门语言来说都是一个核心的概念,在javascript中更是如此。本文将深入介绍函数的5个高级技巧。

点击更多...

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