js排序——sort()排序用法

js排序——sort()排序用法sort()方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串Unicode码点。语法:array.sort(fun);参数fun可选。规定排序顺序。必须是函数。注:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。如果想按照其他规则进行排序,就需要提供比较函数,该函数要比较两个值,然后返回…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

语法:array.sort(fun);参数fun可选。规定排序顺序。必须是函数。
注:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。

如果想按照其他规则进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
简单点就是:比较函数两个参数a和b,返回a-b 升序,返回b-a 降序
//注:原数组发生改变

例:
1.不传参数,将不会按照数值大小排序,按照字符编码的顺序进行排序;

		var arr = ['General','Tom','Bob','John','Army'];
		var resArr = arr.sort();
		console.log(resArr);//输出   ["Army", "Bob", "General", "John", "Tom"]
		
		var arr2 = [30,10,111,35,1899,50,45];
		var resArr2 = arr2.sort();
		console.log(resArr2);//输出   [10, 111, 1899, 30, 35, 45, 50]

2.传入参数,实现升序,降序;

		var arr3 = [30,10,111,35,1899,50,45];
		arr3.sort(function(a,b){
			return a - b;
		})
		console.log(arr3);//输出  [10, 30, 35, 45, 50, 111, 1899]
		
		var arr4 = [30,10,111,35,1899,50,45];
		arr4.sort(function(a,b){
			return b - a;
		})
		console.log(arr4);//输出 [1899, 111, 50, 45, 35, 30, 10]

3.根据数组中的对象的某个属性值排序;

		var arr5 = [{id:10},{id:5},{id:6},{id:9},{id:2},{id:3}];
		arr5.sort(function(a,b){
			return a.id - b.id
		})
		console.log(arr5);
		//输出新的排序
		//		{id: 2}
		//		{id: 3}
		//		{id: 5}
		//		{id: 6}
		//		{id: 9}
		//		{id: 10}

4.根据数组中的对象的多个属性值排序,多条件排序;

		var arr6 = [{id:10,age:2},{id:5,age:4},{id:6,age:10},{id:9,age:6},{id:2,age:8},{id:10,age:9}];
		arr6.sort(function(a,b){
			if(a.id === b.id){//如果id相同,按照age的降序
				return b.age - a.age
			}else{
				return a.id - b.id
			}
		})
		console.log(arr6);
		//输出新的排序
		//		{id: 2, age: 8}
		//		{id: 5, age: 4}
		//		{id: 6, age: 10}
		//		{id: 9, age: 6}
		//		{id: 10, age: 9}
		//		{id: 10, age: 2}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179862.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何开展云平台密评工作[通俗易懂]

    如何开展云平台密评工作[通俗易懂]1.背景云计算目前大家都很熟悉了,为了降低系统的成本或者打通数据的融合,许多企业事业单位的系统都选择部署在云上。云计算技术由于使用虚拟化等技术,其网络等边界相对而言是很模糊的,而部署在云平台上的系统,其安全风险也随之增加。实际测评中,我们经常会碰到云平台和云租户业务应用系统密码应用(以下称为“云上应用”)的密评。2.云平台测评的责任和范围我们可以依据《商用密码应用安全性评估FAQ》第19条的内容,当我们对运行在云平台上的云上应用进行测评时原则上要完成两部分测评工作:(1)当我们对云平台自身

    2025年8月1日
    4
  • python基础语法个人笔记_python基础常用语句

    python基础语法个人笔记_python基础常用语句python语法规范python的语法规范非常重要,简洁明了是python的特性,以下是python语法的一些说明python3的编码格式是unicode(utf-8)标识符的规则:由字母、数字

    2022年7月30日
    4
  • 跨域访问解决及原因分析_为什么会有跨域问题

    跨域访问解决及原因分析_为什么会有跨域问题转自:https://www.cnblogs.com/itmacy/p/6958181.html跨域问题:解决跨域的三种方案当前端页面与后台运行在不同的服务器时,就必定会出现跨域这一问题,本篇简单介绍解决跨域的三种方案,部分代码截图如下,仅供参考:方式一:使用ajax的jsonp前端代码 服务器代码 使用该方式的缺点:请求方式只能是get请求方式二:使用jQuery的jsonp插件…

    2022年9月30日
    4
  • 选一个适合自己的加密芯片,加密IC,如何才能真正的做到不被激活成功教程。[通俗易懂]

    选一个适合自己的加密芯片,加密IC,如何才能真正的做到不被激活成功教程。[通俗易懂]做嵌入式产品,最头痛的事情就是害怕自己的代码给别人读出来,不需要通过自己,人家直接拿去生产了。所以要保护自己的最好方式就是使用硬加密IC的方式。当然有句话说的好“这世上没有激活成功教程不了的加密算法”。每一个加密芯片都有它的不足和优势,今天我不说如果激活成功教程加密IC,我拿几个产品来对比,只讲它的优点和缺点。     ATSHA204:使用SHA-256算法进行加密操作,内置16*32字节的slot(E

    2022年6月25日
    36
  • HTTP和HTTPS有什么区别? 什么是SSL证书?使用ssl证书优势?

    HTTP和HTTPS有什么区别? 什么是SSL证书?使用ssl证书优势?

    2021年10月25日
    49
  • python 和 java 到底该学哪个?

    python 和 java 到底该学哪个?随着互联网的高速发展,越来越多的人选择加入到IT行业,而近年来,编程语言界也可以说是百花齐放……那么,对于刚入行的小伙伴来讲,到底选择哪种编程语言学习更好呢?是一直独占鳌头的Java,还是后来居上的Python,或者近两年一直很热门的大数据、人工智能呢?在做选择前,我们首先要现有个概念认知,就是Java、Python和所谓大数据、人工智能,并不是一个同类。Java、Python是计算机的编程语…

    2022年7月7日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号