const arr = [
{
date: '2020-10-27',
type: '使用人数',
value: 6
},
{
date: '2020-10-28',
type: '使用人数',
value: 5
},
{
date: '2020-10-27',
type: '总人数',
value: 15
},
{
date: '2020-10-29',
type: '使用人数',
value: 8
},
{
date: '2020-10-28',
type: '总人数',
value: 15
},
{
date: '2020-10-29',
type: '总人数',
value: 25
}
];
如何将以上数组转化成如下排序显示:
[
{
date: '2020-10-27',
type: '使用人数',
value: 6
},
{
date: '2020-10-27',
type: '总人数',
value: 15
},
{
date: '2020-10-28',
type: '使用人数',
value: 5
},
{
date: '2020-10-28',
type: '总人数',
value: 15
},
{
date: '2020-10-29',
type: '使用人数',
value: 8
},
{
date: '2020-10-29',
type: '总人数',
value: 25
}
];
可以先封装一个针对时间排序的方法
/**
* 数组以时间进行排序(时间格式:YYYY-MM-DD)
* @param {Object} propertyName
*/
function compareArr( propertyName) {
return function (object_1, object_2) {
let value_1 = (new Date(object_1[propertyName])).getTime();
let value_2 = (new Date(object_2[propertyName])).getTime();
if (value_2 < value_1) {
return 1;
} else if (value_2 > value_1) {
return -1;
} else {
return 0;
}
}
}
再调用这个方法
let new_arr = arr.sort(compareArr('date'));
console.log(new_arr);