2016-07-27 57 views
1

我有對象的列表看起來像這樣:檢查對象的名單有兩個項目同一個JavaScript

Object {title: "The Amaze - 2016-12-31 10:00", date: "10/12/2016", time: "10.00am"…} 
Object {title: "The Amaze - 2016-12-31 12:00", date: "31/12/2016", time: "12.00am"…} 
Object {title: "The Amaze - 2016-12-31 10:00", date: "31/12/2016", time: "10.00am"…} 

我通過object這個名單試圖循環,有一個條件語句,說如果日期匹配,然後做點什麼。

dateArray是我的對象列表。也許不好的做法稱它爲名稱陣列,但..

 for (var j = 0; j < dateArray.length; j++) { 
      if (dateArray[j].date === sDate) { 

       if (dateArray[j].date === dateArray[j].date) { 
        console.log(dateArray[j], "<<<<< Matched"); 
       } 

      } 
     } 

任何人都可以解釋我如何實現我想做的事情。

另外,sDate只是一個變量,我在頂部獲取當前日期。

+0

你這是在做第二個if語句的指標?你想比較2個對象嗎? – Vaibhav

+0

'sDate'是什麼? –

+0

是的,第二個if語句是我的問題。它回來匹配的一切。我試圖說如果一個object.date匹配另一個然後做一些事情@Vicmathur – PourMeSomeCode

回答

0

你可以使用一個對象,一個循環。該對象用作日期的散列表,如果存在,則找到匹配項。

var array = [{ title: "The Amaze - 2016-12-31 10:00", date: "10/12/2016", time: "10.00am" }, { title: "The Amaze - 2016-12-31 12:00", date: "31/12/2016", time: "12.00am" }, { title: "The Amaze - 2016-12-31 10:00", date: "31/12/2016", time: "10.00am" }]; 
 

 
array.forEach(function (a, i) { 
 
    if (this[a.date]) { 
 
     console.log('match @ ' + i); 
 
    } 
 
    this[a.date] = true; 
 
}, Object.create(null));

建議在保持一個日期

var array = [{ title: "The Amaze - 2016-12-31 10:00", date: "10/12/2016", time: "10.00am" }, { title: "The Amaze - 2016-12-31 12:00", date: "31/12/2016", time: "12.00am" }, { title: "The Amaze - 2016-12-31 10:00", date: "31/12/2016", time: "10.00am" }]; 
 

 
array.forEach(function (a, i) { 
 
    if (this[a.date]) { 
 
     console.log('match @ ' + i + ' with ' + this[a.date]); 
 
    } 
 
    this[a.date] = this[a.date] || []; 
 
    this[a.date].push(i); 
 
}, Object.create(null));

0

試試這個,這將檢查每一個組合,你可以改變循環條件

 for (var j = 0; j < dateArray.length; j++) 
     { 
      for (var k =0 ; k < dateArray.length; k++) 
      { 
       if(k==j) 
       { 
        continue; // this is same object 
       } 
       else 
       { 
        if (dateArray[j].date === dateArray[k].date) { 
        console.log(dateArray[j], "<<<<< Matched"); 
       } 
      } 

     } 
相關問題