1.普通的字符串數組排序;
so easy: sort()方法完美解決;
let name = ['Jay Chou', 'G.E.M', 'Jackie Chan', 'Eason Chan'];
name.sort(); // ["Eason Chan", "G.E.M", "Jackie Chan", "Jay Chou"]
2.對數組中對象的某個屬性值是字符串的數組排序;
so easy sort()方法依然完美解決
例如:我們現在根據name對數組people排序;
let people = [
{name: 'Jay Chou', birthday: '1979'},
{name: 'G.E.M', birthday: '1991'},
{name: 'Jackie Chan', birthday: '1973'},
{name: 'Jackie Chan', birthday: '1954'},
{name: 'Eason Chan', birthday: '1974'}
]
開始裝逼:
people.sort((objA, objB) => {
if(objA['name'] >= objB['name']) {
return 1;
}else {
return -1
}
})
注:這裏一定要寫return 1 或 return -1; 其他寫法return true, return false或其他寫法均不對;這是個坑啊!!!
// 輸出結果;若果name一樣,則順序不變;
// people=[
// {name: "Eason Chan", birthday: "1974"}
// {name: "G.E.M", birthday: "1991"}
// {name: "Jackie Chan", birthday: "1973"}
// {name: "Jackie Chan", birthday: "1954"}
// {name: "Jay Chou", birthday: "1979"}
// ]
封裝個方法:
function sortArrOfObj(arr, attr) {
arr.sort((objA,objB)=> {
if(objA[attr] >= objB[attr]) {
return 1;
}else {
return -1
}
})
return arr;
}
sortArrOfObj(people,'name')
Perfect!!!