基於日文對物件進行排序 - JavaScript
假設我們有一個物件陣列,其中包含一週七天的溼度資料。不過,目前資料在陣列中是隨機的。我們應該按照星期幾對物件陣列進行排序,比如週一的排在最前面,然後是週二、週三和週日。
以下是我們的陣列 −
const weather = [{
day: 'Wednesday',
humidity: 60
}, {
day: 'Saturday',
humidity: 50
}, {
day: 'Thursday',
humidity: 65
}, {
day: 'Monday',
humidity: 40
}, {
day: 'Sunday',
humidity: 35
}, {
day: 'Friday',
humidity: 80
}, {
day: 'Tuesday',
humidity: 45
}];解決這個問題的關鍵是建立對映物件,將一週特定幾天對映到相應的索引。它看起來像是 −
const map = {
'Monday': 1,
'Tuesday': 2,
'Wednesday': 3,
'Thursday': 4,
'Friday': 5,
'Saturday': 6,
'Sunday': 7
};現在可以明確地採用 Array.prototype.sort() 方法,傳遞自定義回撥,根據對映中的索引對物件進行排序。
完整的程式碼如下 −
示例
const weather = [{
day: 'Wednesday',
humidity: 60
}, {
day: 'Saturday',
humidity: 50
}, {
day: 'Thursday',
humidity: 65
}, {
day: 'Monday',
humidity: 40
}, {
day: 'Sunday',
humidity: 35
}, {
day: 'Friday',
humidity: 80
}, {
day: 'Tuesday',
humidity: 45
}];
const map = {
'Monday': 1,'Tuesday': 2,'Wednesday': 3,'Thursday': 4,'Friday': 5,'Saturday': 6,
'Sunday': 7
};
weather.sort((a, b) => {
return map[a.day] - map[b.day];
});
console.log(weather);輸出
此程式碼的輸出如下 −
[
{ day: 'Monday', humidity: 40 },
{ day: 'Tuesday', humidity: 45 },
{ day: 'Wednesday', humidity: 60 },
{ day: 'Thursday', humidity: 65 },
{ day: 'Friday', humidity: 80 },
{ day: 'Saturday', humidity: 50 },
{ day: 'Sunday', humidity: 35 }
]
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP