JS-比较函数中嵌套函数,可以排序【对象数组】

简介: 1 function createCompareFun(propertyName){ 2 return function(object1,object2){ 3 var value1 = object1[property...
 1 function createCompareFun(propertyName){
 2                 return function(object1,object2){
 3                     var value1 = object1[propertyName];
 4                     var value2 = object2[propertyName];
 5                     if(value1>value2){
 6                         return 1;
 7                     }else if(value1<value2){
 8                         return -1;
 9                     }else{
10                         return 0;
11                     }
12                 };
13             }
14             var data = [{
15                 name : "guo",
16                 age : 23
17             },{
18                 name : "zhao",
19                 age : 28
20             },{
21                 name : "zhang",
22                 age : 24
23             }];
24             
25             data.sort(createCompareFun("name"));
26             document.write("<hr/>用name排序,获得的第二位的元素的name值是:【"+data[1].name+"】");
27             data.sort(createCompareFun("age"));
28             document.write("<br/>用age进行排序,获得的最后一个元素的name是:【"+data[2].name+"】")
29             

说明:createCompareFun()函数内部,嵌套一个内部函数,函数作为值被return返回,

内部函数传两个参数,并通过[]讲createCompareFun()函数的propertyName属性解析出来,在通过常规比较函数进行判断、比较。

在data中,定义了一个有三个元素的对象数组,最后调用createCompareFun()函数,并根据自己需要比较的属性来传参,函数对数组进行排序。得到比较的结果。

再加一个普通的比较函数

 1                     function compare(value1,value2){
 2                 if(value1>value2){
 3                     return 1;
 4                 }else if(value1<value2){
 5                     return -1;
 6                 }else{
 7                     return 0;
 8                 }
 9             }
10             var arrM = [1,325,6,74,2]
11             console.log(arrM.sort(compare));        

 

目录
相关文章
|
7天前
|
JavaScript
js 解析 byte数组 成字符串
js 解析 byte数组 成字符串
|
1天前
|
JSON JavaScript 前端开发
JavaScript第五天(函数,this,严格模式,高阶函数,闭包,递归,正则,ES6)高级
JavaScript第五天(函数,this,严格模式,高阶函数,闭包,递归,正则,ES6)高级
|
1天前
|
JavaScript 前端开发
js删除数组最后一个元素
js删除数组最后一个元素
|
16天前
|
JavaScript 前端开发
JavaScript基础知识-数组的练习
关于JavaScript基础知识中数组操作的练习,主要介绍了如何从一个包含Person对象的数组中过滤出成年人(年龄达到18岁及以上)并将他们放入一个新的数组中。
25 1
JavaScript基础知识-数组的练习
|
7天前
|
JavaScript 前端开发
JavaScript Boolean(布尔) 对象
Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false)。
26 8
|
6天前
|
JavaScript
js 循环数组取值
js 循环数组取值
|
14天前
|
JavaScript 前端开发
JavaScript 函数
JavaScript 函数
21 9
|
15天前
|
JavaScript 前端开发
前端JS函数
【9月更文挑战第4天】前端JS函数
21 6
|
12天前
|
存储 JavaScript 前端开发
JS中的数组有哪些常用操作函数和属性
【9月更文挑战第7天】JS中的数组有哪些常用操作函数和属性
9 1
|
前端开发 算法 JavaScript
JavaScript 基础排序的实现(二)
继上一篇O(n^2)的排序算法后,这一篇主要记录O(n*logn)的排序算法 1.快排(快速排序)   这一算法的核心思想为,先随机选一个数作为标兵或者说是标记(这个数一般来说选择该无序数组的中间那个元素;此处笔者选取第一个实现算法,当选取完毕后以此标兵为参照将比这个数大的放到他的右边,比他小的放到左边.
1120 0