在平时的业务中经常遇到根据一组数组中对象中的某个值来排序的情况,
例如
var arr=[{name:"dog",num:2},{name:"cat",num:1},{name:"pic",num:2}]
这个时候会想到sort方法,但是我们需要让sort 识别需要排序的属性和排序规则,就需要为sort 传个函数作为参数,利用函数来提供排序规则,同时我们需要把确定排序规则的属性传入函数。
function rule(key) {
return function (a, b) { // sort 默认接受a,b两个参数表示数组中的值
var value1 = a[key]
var value2 = b[key]
return value1 - value2
}
}
arr.sort(rule("num"))
console.log(arr)
例如
var arr=[{name:"dog",num:2},{name:"cat",num:1},{name:"pic",num:2}]
这个时候会想到sort方法,但是我们需要让sort 识别需要排序的属性和排序规则,就需要为sort 传个函数作为参数,利用函数来提供排序规则,同时我们需要把确定排序规则的属性传入函数。
function rule(key) {
return function (a, b) { // sort 默认接受a,b两个参数表示数组中的值
var value1 = a[key]
var value2 = b[key]
return value1 - value2
}
}
arr.sort(rule("num"))
console.log(arr)