js中的数组对象排序(方法sort()详细介绍)

定义和用法

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

语法

   arrayObject.sort(sortby)

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

返回值

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

普通数组排序:

js中用方法sort()为数组排序。sort()方法有一个可选参数,是用来确定元素顺序的函数。如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进行排序。如:

字母A、B的ASCII值分别为65、66,而a、b的值分别为97、98,所以上面输出的结果是 ["A", "B", "a", "b"]

如果一个数组元素是数字,此时还是用sort()为数组排序,先看看效果如何:

怎么没有起到效果(按大小排序),其实,sort方法会调用每个数组项的toString()方法,得到字符串,然后再对得到的字符串进行排序。虽然数值15比3大,但在进行字符串比较时"15"则排在"3"前面(ASCII字符顺序)。显然,这种结果不是我们想要的,这时,sort()方法的参数就起到了作用,我们把这个参数叫做比较函数。

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

数组对象排序:

数组项是对象,需要根据数组项的某个属性对数组进行排序,要怎么办呢?其实和前面的比较函数也差不多

下面这个是我项目的实例:

此时想PX字段大小排序,我是这样做的:

时间: 2024-10-24 03:54:04

js中的数组对象排序(方法sort()详细介绍)的相关文章

js中的数组对象排序

一.普通数组排序 js中用方法sort()为数组排序.sort()方法有一个可选参数,是用来确定元素顺序的函数.如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进行排序.如: var arr = ["a", "b", "A", "B"]; arr.sort(); console.log(arr);//["A", "B", "a", "b"

js中实现数组的indexOf方法

时间过得很快,转行做开发整一年了,打算出去见见世面.看我现在技术水平能达到什么层次,好确定以后的学习方向,也看看外面的公司都在使用一些什么样的技术. 昨天面了一家公司,对方直接让我答的压轴题.一个简单的算法设计题:熟悉js的同学知道js中字符串有个indexOf方法,现在需要实现数组的indexOf方法.由于本科并非计算机专业,编程方面的一些基本功还很不扎实(比如基础算法掌握程度.算法设计能力),昨天没把题目做对.今天赶紧写出来,以免以后遇上还得再去想.罗里吧嗦一顿,上代码吧还是: 1 Arra

js中的数组/对象(阮一峰的js基础教程)

//打印出键值1 Object.keys(array1) 2 ["0", "1", "2", "3", "4", "5"] Object.keys方法返回数组的所有键名.js规定:对象的键名一律为字符串,所以,数组的键名其实也是字符串.之所以可以用数值读取,是因为非字符串的键名会被转为字符串. arr.0的写法不合法,因为单独的数值不能作为标识符(identifier).所以,数组成员只

PHP学习记录数组中的数组的排序方法

数组的排序-按首字母或者首数组排序 <?php $item=array('apple','orange','banana'); echo'未排序前'; print_r($item); echo'<br/>'.'排序后'; sort($item); print_r($item); echo'<br/>'; //数字的排序 $num=array(3,4,22,31,34,52,1,5,2,4); echo'未排序前'; print_r($num); echo'<br/>

关于js中操作数组的一些方法

1.锁定数组的长度(让数组的长度变成只读). var a = [1,2,3] //定义一个数组 Object.defineProperty(a,"length",{ writable:false }) //将a数组的长度属性设为只读 a.length = 0 //将a的长度改为0 console.log(a.length); //打印a数组的长度,还是3 2.Array.join()方法,返回一个字符串 var a = [1,2,3]; var b = a.join("&qu

js中操作数组的一些方法

增 push   在数组的末尾添加一个或多个元素,并返回新的长度.  array.push(1,2,3.........) unshift  在数组的开头添加一个或多个元素,并返回新的长度. array.unshift(1,2,3......) splice 在制定位置添加一个活多个元素,splice(start,0,str)  start必选, 删 pop   删除并返回数组最后一个元素 shift  删除并返回数组第一个元素 splice  删除数组中的元素,然后返回被删除的项目  spli

js中操作数组的一些方法【转】

增 push   在数组的末尾添加一个或多个元素,并返回新的长度.  array.push(1,2,3.........) unshift  在数组的开头添加一个或多个元素,并返回新的长度. array.unshift(1,2,3......) splice 在制定位置添加一个活多个元素,splice(start,0,str)  start必选, 删 pop   删除并返回数组最后一个元素 shift  删除并返回数组第一个元素 splice  删除数组中的元素,然后返回被删除的项目  spli

JS中申明数组的三种方法

JS中的数组对象可以存放的元素非常丰富,包括number.String等基本的数据类型以及object对象还有数组类型,他们都可以构成数组元素的一部分. 方法1: var a = new array(); a[0] = "1";//String类型 a[1] = 2;//number类型 a[2] = { x:1, y:3};//object对象作为数组的元素 //方法2: var  a  =  new array("1" , 2 , {x:1,y:3} ); //

JS中:json对象数组按对象属性排序

var array = [ {name: 'a', phone: 1}, {name: 'b', phone: 5}, {name: 'd', phone: 3}, {name: 'c', phone: 4} ] array.sort(getSortFun('desc', 'phone')); function getSortFun(order, sortBy) { var ordAlpah = (order == 'asc') ? '>' : '<'; var sortFun = new F