let journal = [..............];
//need sort by key time
function sortByStatus(){
return journal.sort(function(a, b) {
return a.fly_status - b.fly_status;
});
}
function sortByTime(){
return journal.sort(function(a, b) {
console.log( new Date( a.start_datetime).getTime() );
return new Date( a.start_datetime).getTime()
- new Date( b.start_datetime).getTime();
});
}
我该怎么做这个逻辑:
journal.sortByStatus().sortByTime()
.....其他一些数组方法?
我可以在我的页面中添加那些只有日期数组而不是所有数组的方法吗?
答案 0 :(得分:1)
一种方法是定义自己的对象。此示例不允许链接方法,但您可以按顺序调用它们:
let Journal = function(list){
this.list = list || [];
this.sortByStatus = function(){
return this.list.sort(function(a, b) {
return a.fly_status - b.fly_status;
});
}
this.sortByTime = function(){
return this.list.sort(function(a, b) {
return new Date( a.start_datetime).getTime() - new Date( b.start_datetime).getTime();
});
}
}
let journal = new Journal([
{fly_status:50, start_datetime: 5},
{fly_status:5, start_datetime: 50}
]);
console.log(journal.sortByStatus());
console.log(journal.sortByTime());
为了允许链接,在方法完成后返回对象本身(尽管有排序,你可能只选择一种或另一种):
let Journal = function(list){
this.list = list || [];
this.sortByStatus = function(){
list.sort(function(a, b) {
return a.fly_status - b.fly_status;
});
return this;
}
this.sortByTime = function(){
list.sort(function(a, b) {
return new Date( a.start_datetime).getTime() - new Date( b.start_datetime).getTime();
});
return this;
}
}
let journal = new Journal([
{fly_status:50, start_datetime: 5},
{fly_status:5, start_datetime: 50}
]);
console.log(journal.sortByStatus().sortByTime().list);