直接上代码:
var arr=[
{name:"张散步",age:"23",sports:"篮球",number:"231123"},
{name:"李斯的",age:"3",sports:"钢琴",number:"534563"},
{name:"艾伦",age:"63",sports:"排球",number:"345455"},
{name:"王武",age:"33",sports:"乒乓球",number:"867324"},
{name:"乏力",age:"26",sports:"足球",number:"132457"}
]; //单一的数字排序
//console.log(arr.sort(sortDownAge));//正序
//console.log(arr.sort(sortUpAge));//反序 //灵活的数字多排序
//console.log(sortDownNumber(arr,"age"));//正序
//console.log(sortUpNumber(arr,"age"));//反序
//
//console.log(sortDownNumber(arr,"number"));//正序
//console.log(sortUpNumber(arr,"number"));//反序 //单一的纯数字排序,上方是正序,下方是反序
function sortDownAge(a, b) {
return a.age - b.age
} function sortUpAge(a, b) {
return b.age - a.age
} //纯数字灵活排序
/*数字正排序
*
* data:对象数组
* p:排序的参数
*
* */
function sortDownNumber(data, p) {
for (i = 0; i < data.length - 1; i++) {
for (j = 0; j < data.length - 1 - i; j++) {
if (parseFloat(data[j][p]) > parseFloat(data[j + 1][p])) {
var temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
return data;
} /*数字反排序
*
* data:对象数组
* p:排序的参数
*
* */
function sortUpNumber(data, p) {
for (i = 0; i < data.length - 1; i++) {
for (j = 0; j < data.length - 1 - i; j++) {
if (parseFloat(data[j][p]) < parseFloat(data[j + 1][p])) {
var temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
return data;
}
分别显示的结果如下截图:
1、单一的数字排序,左侧是正序(arr.sort(sortDownAge)),右侧是反序(arr.sort(sortUpAge))
2、灵活的数字多排序,左侧是年龄正序(sortDownNumber(arr,"age")),右侧是年龄反序(sortUpNumber(arr,"age"))
3、灵活的数字多排序,左侧是number正序(sortDownNumber(arr,"number")),右侧是number反序(sortUpNumber(arr,"number"))
这是其他排序的方法,欢迎查看,欢迎给意见!