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 极速 隐藏/显示万行表格列只需 60毫秒
Mar 28 Javascript
JQuery 图片滚动轮播示例代码
Mar 24 Javascript
javascript实现行拖动的方法
May 27 Javascript
JavaScript中字面量与函数的基本使用知识
Oct 20 Javascript
很棒的js选项卡切换效果
Jul 15 Javascript
JavaScript中object和Object的区别(详解)
Feb 27 Javascript
axios发送post请求springMVC接收不到参数的解决方法
Mar 05 Javascript
Angular网络请求的封装方法
May 22 Javascript
vue-cli3 从搭建到优化的详细步骤
Jan 20 Javascript
实例讲解vue源码架构
Jan 24 Javascript
生产制造追溯系统之在线打印功能
Jun 03 Javascript
基于JavaScript实现十五拼图代码实例
Apr 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
层叠菜单的动态生成
2006/10/09 PHP
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
基于JavaScript实现全屏透明遮罩div层锁屏效果
2016/01/26 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
创建与框架无关的JavaScript插件
2020/12/01 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
Python os模块学习笔记
2015/06/21 Python
Python+MongoDB自增键值的简单实现
2016/11/04 Python
Python切片工具pillow用法示例
2018/03/30 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
自我推荐信范文
2014/05/09 职场文书
技能比武方案
2014/05/21 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
我的1919观后感
2015/06/03 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
运动会3000米加油稿
2015/07/21 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫