根据日期名称对对象进行排序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 }

]

以上是 根据日期名称对对象进行排序JavaScript 的全部内容, 来源链接: utcz.com/z/326566.html

回到顶部