数组的排序技巧

第一种是纯数字的数组的排序。

第二种是数组中时对象,按照对象的某个属性排序。

挺经典的,记录下


// 基本 sort
var values = [0,1,5,10,15,9];
values.sort()
console.log("10">"9"); // false
console.log(values); // [0, 1, 10, 15, 5, 9] 

values = [0,1,5,10,15,9];
values.sort(compare);  // 注意这里compare没有()
console.log(values); // [0, 1, 5, 9, 10, 15]

function compare(value1, value2){
	if(value1>value2){
		return 1;
	}else if(value1<value2){
		return -1;
	}else{
		return 0;
	}
}

console.log(compare.constructor); //function Function() { [native code] } 


// 高级 sort
var data=[{name:"haojie", age:28},{name:"zzy", age:29},{name:"aa", age:100}];
data.sort(createComparefunction("name"));
console.log(data[0].name); // aa
console.log(data[1].name); // haojie
console.log(data[2].name); // zzy

data.sort(createComparefunction("age"));
console.log(data[0].name); // haojie
console.log(data[1].name); // zzy
console.log(data[2].name); // aa

function createComparefunction(propertyName){
	return function (object1, object2){
		if(object1[propertyName]>object2[propertyName]){
			return 1;
		}else if(object1[propertyName]<object2[propertyName]){
			return -1;
		}else{
			return 0;
		}
	}
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值