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 相关文章推荐
js 无提示关闭浏览器页面的代码
Mar 09 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
Feb 03 Javascript
HTML页面,测试JS对C函数的调用简单实例
Aug 09 Javascript
利用Javascript仿Excel的数据透视分析功能
Sep 07 Javascript
JS实现简单的天数计算器完整实例
Apr 28 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
Sep 18 Javascript
如何自动化部署项目?折腾服务器之旅~
Apr 16 Javascript
在Vue项目中使用snapshot测试的具体使用
Apr 16 Javascript
微信小程序实现手势滑动效果
Aug 26 Javascript
javascript 对象 与 prototype 原型用法实例分析
Nov 11 Javascript
vue中watch和computed的区别与使用方法
Aug 23 Javascript
Element el-button 按钮组件的使用详解
Feb 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
php preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
简单的php 验证图片生成函数
2009/05/21 PHP
php网页标题中文乱码的有效解决方法
2014/03/05 PHP
php不使用copy()函数复制文件的方法
2015/03/13 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
php实现统计目录文件大小的函数
2015/12/25 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
PHP简单实现解析xml为数组的方法
2018/05/02 PHP
javascript怎么禁用浏览器后退按钮
2014/03/27 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
浅析node.js中close事件
2014/11/26 Javascript
JavaScript实现99乘法表及隔行变色实例代码
2016/02/24 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
2016/05/19 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
node.js部署之启动后台运行forever的方法
2018/05/23 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
layui动态渲染生成select的option值方法
2019/09/23 Javascript
Vue简单实现原理详解
2020/05/07 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
介绍一款python类型检查工具pyright(推荐)
2019/07/03 Python
python处理RSTP视频流过程解析
2020/01/11 Python
python如何写try语句
2020/07/14 Python
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
什么是聚集索引和非聚集索引
2012/01/17 面试题
生物制药毕业生自荐信
2013/10/16 职场文书
中学生班主任评语
2014/01/30 职场文书
考试作弊检讨
2015/01/27 职场文书
爱牙日宣传活动总结
2015/02/05 职场文书
会议主持词开场白
2015/05/28 职场文书
详解nginx location指令
2022/01/18 Servers
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏