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广告代码
May 30 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
Jan 23 Javascript
JS中eval函数的使用示例
Jul 21 Javascript
JS根据变量保存方法名并执行方法示例
Apr 04 Javascript
Node.js安装教程和NPM包管理器使用详解
Aug 16 Javascript
JavaScript实现动态创建CSS样式规则方案
Sep 06 Javascript
jquery限定文本框只能输入数字(整数和小数)
Jan 08 Javascript
Angularjs 实现移动端在线测评效果(推荐)
Apr 05 Javascript
微信小程序 实现动态显示和隐藏某个控件
Apr 27 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
Oct 16 Javascript
创建nuxt.js项目流程图解
Mar 13 Javascript
JavaScript实现商品评价五星好评
Nov 30 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设计模式 DAO(数据访问对象模式)
2011/06/26 PHP
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
bootstrap是什么_动力节点Java学院整理
2017/07/14 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
Angular实现svg和png图片下载实现
2019/05/05 Javascript
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
python 数据加密代码
2008/12/24 Python
python抓取网页内容示例分享
2014/02/24 Python
Python的Urllib库的基本使用教程
2015/04/30 Python
详解python中requirements.txt的一切
2017/03/03 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
Python 数值区间处理_对interval 库的快速入门详解
2018/11/16 Python
浅谈Python爬虫基本套路
2019/03/25 Python
Pycharm保存不能自动同步到远程服务器的解决方法
2019/06/27 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
解决Pytorch训练过程中loss不下降的问题
2020/01/02 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
Python 字典中的所有方法及用法
2020/06/10 Python
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
机关驾驶员违规检讨书
2014/09/13 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
2014年团支书工作总结
2014/11/14 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
医者仁心观后感
2015/06/17 职场文书
2016新春团拜会致辞
2015/08/01 职场文书
2016党员党课心得体会
2016/01/07 职场文书
初中信息技术教学反思
2016/02/16 职场文书
详解JS ES6编码规范
2021/05/07 Javascript
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS