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 相关文章推荐
js更优雅的兼容
Aug 12 Javascript
理清apply(),call()的区别和关系
Aug 14 Javascript
js文件包含的几种方式介绍
Sep 28 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
Mar 03 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
May 26 Javascript
AngularJS 与百度地图的结合实例
Oct 20 Javascript
bootstrap模态框远程示例代码分享
May 22 Javascript
jquery判断滚动条距离顶部的距离方法
Sep 05 jQuery
使用JavaScript破解web
Sep 28 Javascript
layui table数据修改的回显方法
Sep 04 Javascript
微信小程序动态添加和删除组件的现实
Feb 28 Javascript
在vue中使用防抖函数组件操作
Jul 26 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/07/17 PHP
常用的javascript function代码
2008/05/23 Javascript
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
js用Date对象的setDate()函数对日期进行加减操作
2014/09/18 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
学习vue.js中class与style绑定
2016/12/03 Javascript
Bootstrap 3 按钮标签实例代码
2017/02/21 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
Ionic学习日记实现验证码倒计时
2018/02/08 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
详解JavaScript的this指向和绑定
2020/09/08 Javascript
JavaScript WeakMap使用详解
2021/02/05 Javascript
[00:37]DOTA2上海特级锦标赛 OG战队宣传片
2016/03/03 DOTA
PyQt实现界面翻转切换效果
2018/04/20 Python
python实现点对点聊天程序
2018/07/28 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
如何在python中执行另一个py文件
2020/04/30 Python
Python dict的常用方法示例代码
2020/06/23 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
互动出版网:专业书籍
2017/03/21 全球购物
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
大学生如何写自荐信
2014/01/08 职场文书
高中生操行评语
2014/04/25 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
部门优秀员工推荐信
2015/03/24 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书
Elasticsearch 数据类型及管理
2022/04/19 Python
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS