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 相关文章推荐
JavaScript中数组的排序、乱序和搜索实现代码
Nov 30 Javascript
jquery中$.post()方法的简单实例
Feb 04 Javascript
jQuery中选择器小问题(新人难免遇到)
Mar 31 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
Feb 02 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
Jul 04 Javascript
js内置对象处理_打印学生成绩单的简单实现
Sep 24 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
Apr 23 Javascript
Vue组件选项props实例详解
Aug 18 Javascript
面试题:react和vue的区别分析
Apr 08 Javascript
json字符串对象转换代码实例
Sep 28 Javascript
jQuery实现朋友圈查看图片
Sep 11 jQuery
JavaScript中isPrototypeOf函数
Nov 07 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知道与问问的采集插件代码
2010/10/12 PHP
基于jquery的无刷新分页技术
2011/06/11 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
JavaScript兼容性总结之获取非行间样式案例
2016/08/07 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
bootstrap组件之按钮式下拉菜单小结
2017/01/19 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
解决echarts的多个折现数据出现坐标和值对不上的问题
2018/12/28 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
用Javascript实现发送短信验证码间隔功能
2021/02/08 Javascript
详解Python的Django框架中的通用视图
2015/05/04 Python
python django 访问静态文件出现404或500错误
2017/01/20 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
python__new__内置静态方法使用解析
2020/01/07 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
python mock测试的示例
2020/10/19 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
介绍一下SQL中union,intersect和minus
2012/04/05 面试题
会计岗位职责
2013/11/08 职场文书
小学生作文评语
2014/04/18 职场文书
心理健康日活动总结
2014/05/08 职场文书
计算机应用专业毕业生求职信
2014/06/03 职场文书
小学班主任自我评价
2015/03/11 职场文书
恋恋笔记本观后感
2015/06/16 职场文书
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL