2017-06-21 66 views
5

我遍歷所有具有日期屬性的對象數組。條件我在循環內設置比較對象的日期和今天的日期應該照顧數組中的一些對象,我想因爲舊的日期保持不變,但是,這個條件是刪除數組中的所有對象一些原因。如何保留對象與我的數組中的舊日期

它無法使用getTime()。 getTime刪除數組中的所有內容。就像我試圖在這裏:

constructor ( public navCtrl: NavController, 
           public modalCtrl: ModalController, 
           public loading: LoadingController, 
           public popoverCtrl: PopoverController, 
           public getPostSrvc: getPostsService) { 

     this.listOfEvents = []; 

     let that = this; 

function getPostsSuccess (listOfEventsObject) { 

        for (var i in listOfEventsObject) { 

         if(listOfEventsObject[i].date.getTime() < Date.now()){ 

           that.listOfEvents.push(listOfEventsObject[i]); 

           }//close if 
        }//close for loop 
    }//close function 
}//close constructor 

UPDATE 我的解決辦法:

export class Home { 

    listOfEvents: Array<any> = []; 
    parseDate: number; 
    today : number; 

    constructor ( //constructor stuff){ 

     for (var i in listOfEventsObject) { 

      that.today = Date.now(); 


       that.parseDate = Date.parse(listOfEventsObject[i].date); 

       if(that.parseDate > that.today){ 

         that.listOfEvents.push(listOfEventsObject[i]); 

        }//close if 


       }//close for 
}//close constructor 
}//close export 
+0

什麼是'listOfEventsObject的價值[I] .date'? – RobG

+0

@RobG日期的日期選擇從表格上的日期選擇器.. – Spilot

+2

在這種情況下,你可能會比較像「2017-06-21」字符串像一個數字像1498078203780. – RobG

回答

1

如果由RobG在評論中提及的listOfEventsObject[i].date值是一個字符串,可以先分析它,並比較兩者的日期值Date.now()

if (Date.parse(listOfEventsObject[i].date) < Date.now()) { 
    ... 
} 
0

我不能肯定地說,因爲我不知道listOfEventsObject[i].date有什麼樣的數據。 但是,如果該數據包含時間戳,則可以將其轉換爲毫秒並將其與Date.now()進行比較。

if (listOfEventsObject[i].date.getTime() < Date.now())

讓我知道這是不是你要找的,歡呼的答案。

+1

「<」運算符使用[*抽象關係比較*](http://ecma-international.org/ecma-262/7.0/index.html#sec-abstract-relational-comparison)算法,該算法將日期強制編號,所以'date RobG