Js数组排序函数:sort()
原文链接:https://blog.csdn.net/qq_37936542/article/details/78979521
js原生的 sort() 排序函数使用起来很方便
语法:arrayObject.sort(fun) 数组对象.sort(排序函数)
如果调用该方法时没有使用参数,将按照字符编码的顺序进行排序。也可以提供一个比较函数
作为参数,实现大小的排序。
例一:对数值型元素的数组进行大小排序
- //定义一个比较函数
- //升序排序
- function NumAscSort(a,b)
- {
- return a - b;
- }
- //降序排序
- function NumDescSort(a,b)
- {
- return b - a;
- }
- //定义数组
- var arr = new Array( 10, 30, 15, 45, 8);
- //对数组进行升序排序
- arr.sort(NumAscSort);
- alert(arr);
- //对数组进行降序排序
- arr.sort(NumDescSort);
- alert(arr);
例二:对字符串类型元素数组进行排序
- //当调用sort函数没有给予参数时,默认根据字符编码的顺序进行排序
- var arr = ["Apple", "Banana", "Orange"];
- arr.sort();
- alert(arr);
例三:对象数组排序
- //定义compare函数,参数name是对象的某一个属性,比如age、salary
- //返回一个可以用来对包含该成员的对象数组进行排序的比较函数
- var compare = function(name){
- return function(o, p){
- var a, b;
- if (typeof o === "object" && typeof p === "object" && o && p) {
- a = o[name];
- b = p[name];
- if (a === b) {
- return 0;
- }
- if (typeof a === typeof b) {
- return a < b ? -1 : 1;
- }
- return typeof a < typeof b ? -1 : 1;
- }
- else {
- throw ("error");
- }
- }
- }
- //定义员工对象数组
- var emp=[];
- emp[0]={name:"xiaoming", age:32, salary:11000};
- emp[1]={name:"xiaohong", age:17, salary:23000};
- emp[2]={name:"dahuang", age:58, salary:9000};
- emp[3]={name:"dajiji", age:62, salary:15000};
- <span style="white-space:pre"> </span>
- <span style="white-space:pre"> </span>
- //排序
- emp.sort(compare("age"));
- <span style="white-space:pre"> </span>
- for(var i = 0;i<emp.length; i++){
- alert(emp[i].age)
- }
例四:根据多个属性对 ‘对象数组’ 进行排序
- //定义compare函数,name是对象的某一个属性,fun是一个比较函数
- var compare = function(name,fun){
- return function(o,p){
- var a,b;
- if(o && p && typeof o === 'object' && typeof p ==='object'){
- a = o[name];
- b = p[name];
- //当o[name] 和 p[name] 相等时,利用fun函数根据另一个属性来进行比较
- if(a === b){
- return typeof minor === 'function' ? fun(o,p):0;
- }
- if(typeof a === typeof b){
- return a < b ? -1:1;
- }
- return typeof a < typeof b ? -1 : 1;
- }else{
- thro("error");
- }
- }
- }
- //定义员工对象数组
- var emp=[];
- emp[0]={name:"xiaoming", age:32, salary:11000};
- emp[1]={name:"xiaohong", age:62, salary:23000};
- emp[2]={name:"dahuang", age:58, salary:9000};
- emp[3]={name:"dajiji", age:62, salary:15000};
- //先根据age排序,age相等时,根据工资排序
- emp.sort(compare('age',compare('salary')));
- <span style="white-space:pre"> </span>
- for(var i = 0;i<emp.length; i++){
- <span style="white-space:pre"> </span>alert(emp[i].name)
- }
文末福利:
福利一:前端,Java,产品经理,微信小程序,Python等10G资源合集大放送:https://www.jianshu.com/p/e8197d4d9880
福利二:微信小程序入门与实战全套详细视频教程
【领取方法】
关注 【编程微刊】微信公众号:
回复【小程序demo】一键领取130个微信小程序源码demo资源。
回复【领取资源】一键领取前端,Java,产品经理,微信小程序,Python等资源合集10G资源大放送。
原文作者:祈澈姑娘
原文链接:https://www.jianshu.com/u/05f416aefbe1
创作不易,转载请告知
90后前端妹子,爱编程,爱运营,爱折腾。
坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。
Js数组排序函数:sort()的更多相关文章
- Js数组排序函数sort()
		JS实现多维数组和对象数组排序,用的其实就是原生sort()函数,语法为:arrayObject.sort(sortby)(sortby 可选.规定排序顺序.必须是函数.) 返回值为对数组的引用:请注 ... 
- 深入探讨JS中的数组排序函数sort()和reverse()
		最近在研究Javascript发现了其中一些比较灵异的事情.有点让人感到无语比如: alert(typeof( NaN == NaN));//结果为假. alert(typeof( NaN != Na ... 
- JS中的数组排序函数sort()
		JavaScript实现多维数组.对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序. sort() 方法用于对数组的元素进行排序.语法如下: arrayObject.sort ... 
- PHP数组排序函数有哪些
		PHP数组排序函数有哪些 一.总结 一句话总结:其实也就是是否保持索引,对键排序还是对值排序,除了sort,rsort.shuffle,usort外,都是保持索引的 是否保持索引 键排序 值排序 除了 ... 
- js数组排序 reverse()和sort()方法的使用
		WEB前端|js数组排序reverse()和sort()方法的使用,数组中已经存在两个可以直接用来重排序的方法:reverse()和sort(). reverse()方法会对反转数组项的顺序. var ... 
- JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
		本文实例总结了JS数组排序技巧.分享给大家供大家参考,具体如下: 1.冒泡排序 var temp = 0; for (var i = 0; i < array.length; i++) { fo ... 
- js数组之sort排序的用法
		sort排序 转载自:https://blog.csdn.net/idomyway/article/details/80544509 js中用方法sort()为数组排序.sort()方法有一个可选参数 ... 
- js 数组排序和算法排序
		1.算法排序 a.插入排序 var arr = [23,34,3,4,23,44,333,444]; var arrShow = (function insertionSort(array){ if( ... 
- js数组排序
		在JS中,sort方法可用于数组的排序:先来看一个例子: var arr = [1, 2, 3, 5, 7, 78, 8, 89]; arr.sort(); console.log(arr); // ... 
随机推荐
- JS match方法的返回数据的探究
			match方法是JS的字符串方法,详细说明可以看MDN的说明. 如果正则表达式匹配成功的话,match方法会返回一个数组,而数组里的数据有两种形式,对应着匹配方式:全局匹配与非全局匹配. 1. 全局匹 ... 
- 本地 oracle 安装文件夹满触发 ORA-7445 [_memmove()+64]  导致Instance Crashed 的事故
			近期处理了一个问题,原因是因为命中ORA-600 [kole_t2u], [34] - description, bugs 导致 在udump 文件夹下大量转储 出cdmp 文件, 然后这些 cdmp ... 
- bootstrap课程9 bootstrap如何实现动画加载进度条的效果
			bootstrap课程9 bootstrap如何实现动画加载进度条的效果 一.总结 一句话总结:在bootstrap进度条的基础上添加js(定时器),动态的改变进度条即可.很简单的. 1.路径导航是什 ... 
- 好玩的 emoji
			emoji 就是表情符号,来自日语词汇"絵文字"(假名为"えもじ",读音即emoji).emoji 表情符号大全,都在这里(手机/电脑都可以复制):www.fu ... 
- 通过WMI的方式去设置LCD背光亮度
			code例如以下: #include "stdafx.h" #include <objbase.h> #include <windows.h> #inclu ... 
- !!在JS中代表什么
			!!一般用来将后面的表达式转换为布尔型的数据(boolean), javascript约定和c类似,规则为 ·false.undefinded.null.0."" 为 false, ... 
- OpenJDK源码研究笔记(十六):在Java中使用JavaScript脚本语言
			友情提示 本文主要参考了51CTO上的一篇文章,代码经过自己的模仿和整理,还算凑合. 本文中的代码注释比较多,不再过多解释. 更多用法,还是得看JDK的API或者看原文http://developer ... 
- Linear to physical address translation with support for page attributes
			Embodiments of the invention are generally directed to systems, methods, and apparatuses for linear ... 
- comparator接口与Comparable接口的差别
			1. Comparator 和 Comparable 同样的地方 他们都是java的一个接口, 而且是用来对自己定义的class比較大小的, 什么是自己定义class: 如 public class ... 
- 使用 JS 关闭警告框及监听自定义事件(amaze ui)
			使用 JS 关闭警告框及监听自定义事件(amaze ui) 一.总结 1.jquery匿名函数:第8行,jquery匿名函数,$(function(){});,有没有很简单,只是少了jquery的前面 ... 
