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 YUI 读码日记之 YAHOO.util.Dom - Part.2 0
Mar 22 Javascript
JavaScript 计算图片加载数量的代码
Jan 01 Javascript
Jquery进度条插件 Progress Bar小问题解决
Jul 12 Javascript
node.js中的fs.futimesSync方法使用说明
Dec 17 Javascript
jQuery中bind()方法用法实例
Jan 19 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
Mar 11 Javascript
javascript 小数乘法结果错误的处理方法
Jul 28 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
Oct 20 Javascript
jQuery导航条固定定位效果实例代码
May 26 jQuery
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
Apr 04 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
Aug 26 Javascript
Vuex中的Mutations的具体使用方法
Jun 01 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
如何设置mysql允许外网访问
2013/06/04 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
thinkphp配置连接数据库技巧
2014/12/02 PHP
PHP利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
laradock环境docker-compose操作详解
2019/07/29 PHP
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
js切换光标示例代码
2013/10/10 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
jQuery实现图片走马灯效果的原理分析
2016/01/16 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
js实现点击按钮随机生成背景颜色
2020/09/05 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
Python 基础之字符串string详解及实例
2017/04/01 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
Python代码实现KNN算法
2017/12/20 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
2020/04/19 Python
python模块如何查看
2020/06/16 Python
canvas像素点操作之视频绿幕抠图
2018/09/11 HTML / CSS
物流管理专业应届生求职信
2013/11/21 职场文书
仓库主管的岗位职责
2013/12/04 职场文书
八年级英语教学计划
2015/01/23 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书
写好Python代码的几条重要技巧
2021/05/21 Python
学习nginx基础知识
2021/09/04 Servers
POST提交数据常见的四种方式
2022/01/18 HTML / CSS
vue实现移动端div拖动效果
2022/03/03 Vue.js
使用Python解决图表与画布的间距问题
2022/04/11 Python