javaScript中自定义sort中的比较函数,用于比较字符串长度,数值大小

时间:2021-11-09 17:03:10
 
var arr = ['aa', , 1.2, 'bb', 'cc'];
var len = arr.length;
// for (var i = 0; i < len; i++) {
// alert(arr + " 数组的长度是: " + arr.length + "这一次队首的元素是:" + arr.shift());
// }
// alert("重排数组后: " + arr.reverse());
// alert("数组排序后: " + arr.sort());
var arr = [, , , , , ];
//初级版本的比较数值大小
function compareBig(num1, num2) {
if (num1 < num2) {
return -;
} else if (num1 == num2) {
return ;
} else {
return ;
}
}
//当被比较的两个数,可以被转换为数值时,可以简化gai方法
function compareBigger(num1, num2) {
return num1 - num2;
}
var strArr = ['a', 'aaaaa', 'aa', '124', '0sjssd'];
function compareLen(str1, str2) {
if (str1.length < str2.length) {
return -;
} else if (str1.length < str2.length) {
return ;
} else {
return ;
}
 
 
//比较数组元素为对象时,我们怎么处理呢?
 
}
alert(arr + "排序后的数组是: " + arr.sort(compareBig));
alert(strArr + "排序后的数组是: " + strArr.sort(compareLen));
 
 
//函数嵌套,上面两种函数,自己好好体会
function creatCompareFunction(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: 'dd', age: 2 }, { name: 'bb', age: 31 },
{ name: 'cc', age: 1 }
]; data.sort(creatCompareFunction('name')); alert(data[0].name);