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触发器详解
Mar 10 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
May 02 Javascript
JavaScript设计模式学习之“类式继承”
Mar 12 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
Jun 18 Javascript
js下拉菜单生成器dropMenu使用方法详解
Aug 01 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
Aug 07 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
Aug 25 Javascript
JavaScript 保护变量不被随意修改的实现代码
Sep 27 Javascript
JavaScript数据结构之栈实例用法
Jan 18 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
May 14 Javascript
微信小程序实现上拉加载功能
Nov 20 Javascript
Javascript如何实现双指控制图片功能
Feb 25 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
LotusPhp笔记之:基于ObjectUtil组件的使用分析
2013/05/06 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
PHP使用SOAP调用API操作示例
2018/12/25 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
javascript 面向对象编程基础:继承
2009/08/21 Javascript
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
从盛大通行证上摘下来的身份证验证js代码
2011/01/11 Javascript
JavaScript中valueOf函数与toString方法深入理解
2012/12/02 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
2013/10/10 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
2015/05/12 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
vue mixins组件复用的几种方式(小结)
2017/09/06 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
js实现一个简易计算器
2020/03/30 Javascript
Python使用函数默认值实现函数静态变量的方法
2014/08/18 Python
使用Python写CUDA程序的方法
2017/03/27 Python
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
python 常见的反爬虫策略
2020/09/27 Python
Wilson体育用品官网:美国著名运动器材品牌
2019/05/12 全球购物
大学军训通讯稿
2014/01/13 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
聋哑人盗窃罪辩护词
2015/05/21 职场文书
校园安全教育心得体会
2016/01/15 职场文书
vue-cropper插件实现图片截取上传组件封装
2021/05/27 Vue.js