var arr = [{
'name': 'abc',
'age': 20
},
{
'name': 'cde',
'age': 19
},
{
'name': 'dfc',
'age': 25
},
{
'name': 'bde',
'age': 21
},
]
function compare(property) {
return function (a, b) {
return (a[property] - b[property])
}
}
console.log(arr.sort(compare('age')))
compare函数不是只接收了属性名吗,为什么compare函数返回的function函数里面a和b参数能够获取到arr里面的每一个对象?
我的想法:
compare底层用的冒泡,每次交换出一个最大值。
a和b分别是当前项和下一项。
为正就不动,负数就交换。