JavaScript 中 Array 的 sort 方法总结

发布于 2022-09-21 15:56:06 字数 2301 浏览 142 评论 0

使用方式

参数描述返回值
sortby可选,规定排序顺序,必须是函数对数组的引用,数组在原数组上进行排序,不生成副本

说明:

  • sort 方法内如果不传参数,则是比较数组内元素的 ASCII 字符编码的值,即每次都会调用元素的 toString() 转换成字符串,按ASCII字符编码值进行比较
  • 若想按照其他方式进行排序,则需要传入比较函数(sort 内的参数),比较函数需要返回值,当函数返回值为1的时候就交换两个数组项的顺序,否则就不交换

按照 ASCII 编码值进行比较

var arr = ['apple', 'banana', 'pear', 'apricot', 'grape', 'JJJ'];
arr.sort();

// arr =>  ["JJJ", "apple", "apricot", "banana", "grape", "pear"]

因为J的ASCII值比a的小,所以J排在apple的前面

升序排列:

var arr = [10, 2, 9, 3, 24, 6];
arr.sort(function(a, b) {
	return a-b;
});
//arr => [2, 3, 6, 9, 10, 24]

升序排列可以另写成:

arr.sort(function(a, b) {
    if (a<b) {
        return -1; // a<b,-1表示不调换位置
    } else if (a>b) {
        return  1;// a>b, 1表示需要调换位置
    } else {
        return 0; // 不调换位置
    }
});    

降序排列:

var arr = [10, 2, 9, 3, 24, 6];
	arr.sort(function(a, b) {
		return b-a;
	});
//arr => [24, 10, 9, 6, 3, 2]

降序排列可以另写成:

arr.sort(function(a, b) {
	if (a<b) {
        return 1 //表示需要调换a、 b的位置
    } else if (a>b) {
        return -1 // 表示不需要调换a、 b位置
    } else {
        return 0 // 表示不需要调换a、 b位置
    }
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
24 人气
更多

推荐作者

遂心如意

文章 0 评论 0

5513090242

文章 0 评论 0

巷雨优美回忆

文章 0 评论 0

junpengz2000

文章 0 评论 0

13郎

文章 0 评论 0

qq_xU4RDg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文