基于日文对对象进行排序 - 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