您的位置:首页 > 其它

根据对象某一属性进行排序

2017-08-16 11:45 489 查看

根据对象某一属性进行排序

var data = [
{ name: "tom" , age: 18 },
{ name: "jack" , age: 19 },
{ name: "mary" , age: 20 }
];

//定义一个比较器
function compare(propertyName) {
return function(object1, object2) {
var value1 = object1[propertyName];
var value2 = object2[propertyName];
if (value2 < value1) {
return 1;
} else if (value2 > value1) {
return -1;
} else {
return 0;
}
}
}
//使用方法,根据age对数组的每个对象进行排序
data.sort(compare("age"));

console.log(data);


结果



sort的用法

sort() 方法可以接受一个 方法为参数 ,这个方法有两个参数。分别代表每次排序比较时的两个数组项。sort()排序时每次比较两个数组项都回执行这个参数,并把两个比较的数组项作为参数传递 给这个函数。当函数返回值为1的时候就交换两个数组项的顺序,否则就不交换。

var arr = [2,1,4,5,3] ;

arr.sort(function(a,b){
if( a>b ){
return 1 ;  //返回1表示正在比较的两个数需要交换位置
}else if( a<b ){
return -1 ; //返回1表示正在比较的两个数不需要交换位置
}else{
return 0 ;
};
});

console.log( arr );   // [1, 2, 3, 4, 5]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: