假如我們有如下一個對象數組,我們想根據價格高低進行排序如何實現呢?
var fruits = [
{
id:1,
name:"apple",
price:6
},
{
id:2,
name:"banana",
price:4
},
{
id:3,
name:"pear",
price:3
},
{
id:4,
name:"strawberry",
price:10
}
]
/* 第一個參數爲根據排序的屬性名 第二個參數如果爲 不填或者true或者1 爲升序排序 如果 爲false 或者0 爲降序排序 */
function compare(attr, rev) {
//第二個參數沒有傳遞 默認升序排列
if (rev == undefined) {
rev = 1;
} else {
rev = (rev) ? 1 : -1;
}
return function(a, b) {
a = a[attr];
b = b[attr];
if (a < b) {
return rev * -1;
}
if (a > b) {
return rev * 1;
}
return 0;
}
}
console.log(fruits.sort(compare('price',0)));
效果如下: