JS实现给数组对象排序的方法分析


Posted in Javascript onJune 24, 2019

本文实例讲述了JS实现给数组对象排序的方法。分享给大家供大家参考,具体如下:

JS中给数组对象排序

假设有一个对象数组,我们想要根据某个对象属性对数组进行排序。而传递给数组sort()方法的比较函数要接收2个参数,即要比较的值。

可是,我们需要一种方式指明按照哪个属性来排序。

要解决这个问题,可以定义一个函数,它接收一个属性名,然后根据这个属性名来创建一个比较函数。

function createComprisonFunction(propertyName){
    return function(object1,object2){
        var value1 = object1[propertyName];
        var value2 = object2[propertyName];
        if(value1 < value2){
            return -1;
        }else if(value1 > value2){
            return 1;
        }else{
            return 0;
        }
    }
}
//上面的函数可以像在下面的列子中这样使用
var data = [{name:"Zachary",age:28},{name:"Nicholas",age:29}];
data.sort(createComprisonFunction("name"));
console.log(data[0].name); //Nicholas
data.sort(createComprisonFunction("age"));
console.log(data[0].name); //Zachary

运行结果:

JS实现给数组对象排序的方法分析

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

Javascript 相关文章推荐
Firefox中autocomplete=&quot;off&quot; 设置不起作用Bug的解决方法
Mar 25 Javascript
javascript的原生方法获取数组中的最大(最小)值
Dec 19 Javascript
jQuery中delegate与on的用法与区别示例介绍
Dec 20 Javascript
基于js与flash实现的网站flv视频播放插件代码
Oct 14 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
Mar 03 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
May 10 Javascript
jQuery四种选择器使用及示例
Jun 05 Javascript
AngularJS日程表案例详解
Aug 15 Javascript
Vue props 单向数据流的实现
Nov 06 Javascript
js使用swiper实现层叠轮播效果实例代码
Dec 12 Javascript
layui操作列按钮个数和文字颜色的判断实例
Sep 11 Javascript
实例讲解React 组件生命周期
Jul 08 Javascript
新手快速入门JavaScript装饰者模式与AOP
Jun 24 #Javascript
Electron + vue 打包桌面操作流程详解
Jun 24 #Javascript
JS字符串常用操作方法实例小结
Jun 24 #Javascript
新手入门带你学习JavaScript引擎运行原理
Jun 24 #Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
Jun 24 #Javascript
新手如何快速理解js异步编程
Jun 24 #Javascript
简单了解小程序+node梳理登陆流程
Jun 24 #Javascript
You might like
色色整理的PHP面试题集锦
2012/03/08 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
浅析vue数据绑定
2017/01/17 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
在vue中获取微信支付code及code被占用问题的解决方法
2019/04/16 Javascript
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
python实现人机五子棋
2020/03/25 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
英国虚拟主机服务商:eUKhost
2016/08/16 全球购物
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
安全的后院和健身蹦床:JumpSport
2019/07/15 全球购物
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
优秀德育工作者事迹材料
2014/05/07 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
团支部书记竞选稿
2015/11/21 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python