js代码:
var arr = [
{"name":"JackeLove","age":20},
{"name":"Uzi","age":25},
{"name":"CloearLove","age":99},
{"name":"Rookie","age":10},
{"name":"Ming","age":22}
]
var newArrByStr = sortByStr(arr,"name")
console.log("按name(字符串)排序:",newArrByStr)
var newArrByInt = sortByInt(arr,"age")
console.log("按age ( 数字 )排序:",newArrByInt)
// 按类型为String的属性排序
function sortByStr (array, key) {
return array.sort(function (b, a) {
var x = (a[key].substr(0, 1)).charCodeAt()
var y = (b[key].substr(0, 1)).charCodeAt()
return y - x
})
}
// 按类型为Number的属性排序
function sortByInt (array, key) {
return array.sort(function (b, a) {
var x = a[key]
var y = b[key]
return y - x
})
}
结果:
两个方法也可以整合一下,即先判断属性的类型是什么,再分别进行比较,这里就不写出来了~