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获得服务器端控件的ID的实现代码
Dec 28 Javascript
用jquery实现输入框获取焦点消失文字
Apr 27 Javascript
javascript匿名函数应用示例介绍
Mar 07 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
May 12 Javascript
js获取客户端操作系统类型的方法【测试可用】
May 27 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
Nov 08 jQuery
详解vue-cli快速构建vue应用并实现webpack打包
Dec 13 Javascript
VUE中v-on:click事件中获取当前dom元素的代码
Aug 22 Javascript
Vue多组件仓库开发与发布详解
Feb 28 Javascript
Javascript数组方法reduce的妙用之处分享
Jun 10 Javascript
vuejs移动端实现div拖拽移动
Jul 25 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
Oct 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中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
php文件缓存类用法实例分析
2015/04/22 PHP
php fread读取文件注意事项
2016/09/24 PHP
php自定义截取中文字符串-utf8版
2017/02/27 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
JavaScript学习笔记之创建对象
2016/03/25 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
6行代码实现微信小程序页面返回顶部效果
2018/12/28 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
python文件和目录操作方法大全(含实例)
2014/03/12 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
使用Template格式化Python字符串的方法
2019/01/22 Python
python项目对接钉钉SDK的实现
2019/07/15 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
浅谈Python __init__.py的作用
2020/10/28 Python
匡威德国官网:Converse德国
2019/01/26 全球购物
超级搞笑检讨书
2014/01/15 职场文书
会计学毕业生求职信
2014/06/25 职场文书
信仰观后感
2015/06/03 职场文书
新闻稿怎么写
2015/07/18 职场文书
《刷子李》教学反思
2016/02/20 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android