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 相关文章推荐
fancybox modal的完美解决(右上的X)
Oct 30 Javascript
js css后面所带参数含义介绍
Aug 18 Javascript
javascript生成不重复的随机数
Jul 17 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
Dec 22 Javascript
react.js CMS 删除功能的实现方法
Apr 17 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
Nov 11 Javascript
web前端vue实现插值文本和输出原始html
Jan 19 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
Mar 26 Javascript
webpack@v4升级踩坑(小结)
Oct 08 Javascript
webpack常用配置总览(小结)
Nov 18 Javascript
JavaScript事件委托实现原理及优点进行
Aug 29 Javascript
javascript实现放大镜功能
Dec 09 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安装memcached扩展笔记
2015/05/28 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
2016/07/22 Javascript
canvas绘制的直线动画
2017/01/23 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
详解Angular 4.x NgTemplateOutlet
2017/05/24 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
2020/05/22 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
Python多线程模块Threading用法示例小结
2019/11/09 Python
html5实现九宫格抽奖可固定抽中某项奖品
2020/06/15 HTML / CSS
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
行政人员工作职责
2013/12/05 职场文书
集体婚礼策划方案
2014/02/22 职场文书
菜篮子工程实施方案
2014/03/08 职场文书
综合内勤岗位职责
2014/04/14 职场文书
学校读书活动总结
2014/06/30 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
2014年内勤工作总结
2014/11/24 职场文书
同学聚会通知书
2015/04/20 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis