數組對象按照指定屬性進行排序方法

假如我們有如下一個對象數組,我們想根據價格高低進行排序如何實現呢?

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)));

效果如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章