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高级程序设计 读书笔记之十一 内置对象Global
Mar 07 Javascript
png在IE6 下无法透明的解决方法汇总
May 21 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
Nov 30 Javascript
jQuery获取cookie值及删除cookie用法实例
Apr 15 Javascript
jQuery的Read()方法代替原生JS详解
Nov 08 Javascript
详解使用fetch发送post请求时的参数处理
Apr 05 Javascript
JS排序之冒泡排序详解
Apr 08 Javascript
Node.js安装配置图文教程
May 10 Javascript
javascript获取指定区间范围随机数的方法
Sep 08 Javascript
在vue中使用Autoprefixed的方法
Jul 27 Javascript
layui form表单提交后实现自动刷新
Oct 25 Javascript
Webpack5正式发布,有哪些新特性
Oct 12 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
php学习之数据类型之间的转换代码
2011/05/29 PHP
屏蔽机器人从你的网站搜取email地址的php代码
2012/11/14 PHP
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
2014/12/20 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
javascript之Boolean类型对象
2016/06/07 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
echart简介_动力节点Java学院整理
2017/08/11 Javascript
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
详解javascript常用工具类的封装
2018/01/30 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
vue项目中使用Svg的方法
2018/10/24 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
[54:08]LGD女子刀塔学院 DOTA2炼金术士教学
2014/01/09 DOTA
详解python的数字类型变量与其方法
2016/11/20 Python
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
浅析python递归函数和河内塔问题
2017/04/18 Python
python数据结构之列表和元组的详解
2017/09/23 Python
Python删除n行后的其他行方法
2019/01/28 Python
详解Python中的测试工具
2019/06/09 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
高中生学习生活的自我评价
2013/11/27 职场文书
小学教师管理制度
2014/01/18 职场文书
乡文化站暑期培训方案
2014/08/28 职场文书
大学组织委员竞选稿
2015/11/21 职场文书