您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
Ready 发布于2014年08月07日 12:17

原创 JavaScript Array.sort() 函数详解

3385 次浏览 读完需要≈ 5 分钟

内容目录

sort()函数用于将当前数组对象的元素按指定顺序进行排序,并返回排序后的数组

该函数属于Array对象,所有主流浏览器均支持该函数

语法

array.sort( sortFunction )

参数

参数 描述
sortFunction 可选参数/Function类型指定如何比较元素顺序的函数名称。

如果省略sortFunction参数,元素将按ASCII字符顺序的升序进行排列。

如果提供了sortFunction参数,那么该函数必须返回下列值之一:

  • 如果所传递的第一个参数小于第二个参数,则返回负值。
  • 如果两个参数相等,则返回零。
  • 如果第一个参数大于第二个参数,则返回正值。

返回值

sort()函数的返回值为Array类型,返回排序后的数组对象。

在排序过程中,并不会创建新的数组对象,返回的数组对象就是经过排序后的当前数组本身。

示例&说明

//定义一个数组对象
var array = ["Code", true, "Player", -5.21, false, 12, 0];

// 按照ASCII字符顺序进行升序排列
var sortedArray = array.sort();
document.writeln( sortedArray ); // -5.21,0,12,Code,Player,false,true
document.writeln( array ); // -5.21,0,12,Code,Player,false,true
// 返回的数组对象sortedArray就是经过排序后的数组array本身
document.writeln( array === sortedArray ); // true


// 根据元素转换为字符串后的字符长度进行升序排列
function arraySortByLength(a, b){
    // 为便于用户理解,此处未考虑a或b为undefined或null的情况。
	var aStr = a.toString(), bStr = b.toString();
    // 如果是按照字符长度降序排序,则应该为bStr.length - aStr.length
	return aStr.length - bStr.length;
}

// 定义一个等同的数组对象
var array2 = ["Code", true, "Player", -5.21, false, 12, 0];
// 使用自定义函数进行排序
array2.sort( arraySortByLength );
document.writeln( array2 ); // 0,12,Code,true,-5.21,false,Player

运行代码

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论

打开导航菜单