其他分享
首页 > 其他分享> > 题目:由对象组成的数组,按照既定属性值进行排序

题目:由对象组成的数组,按照既定属性值进行排序

作者:互联网

sort()方法

function createComparisonFunction(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;
		}
	};
}

return出来的函数类似于:

arr.sort(function (a, b) {
	return a - b;
})
arr.sort(function (a, b) {
	return b - a;
})

在下面例子中可以这样使用:

var data = [{name: "Zachary", age: 28}, {name: "Nicholas", age: 29}];
data.sort(createComparisonFunction("name"));
alert(data[0].name);	//Nicholas
data.sort(createComparisonFunction("age"));
alert(data[0].name);	//Zachary

参考《JavaScript高级程序设计(第三版)》 P114

标签:sort,function,return,name,propertyName,数组,排序,data,既定
来源: https://blog.csdn.net/qq_17241921/article/details/120470854