2017-10-06 72 views
0

所以我有一個目標的對象。我想看看裏面是否有一個特定的目標。.includes()對象的一部分

我這樣做:

for (let i = 0; i < this.goalsHome.length; i++) { 
    console.log(this.goalsHome[i].includes(goal)); 
} 

導致的錯誤包括:不存在類型的對象上。

但是如果我想檢查一個特定的對象屬性?假設我想檢查目標的評論是否與對象中的某個目標評論匹配。那應該是可以的吧?通過循環槽?

image with the object

但如果我在兩者之間,它說評論不類型的對象上不存在添加.comment

回答

2

你可能想檢查數組中是否有一個對象與註釋匹配的目標評論。如果這是你想要做的,你可以做

this.goalsHome.filter(goalHome => goalHome.comment === goal.comment); 

如果你想查找所有匹配的對象。 (見MDN Web Docs

如果你想知道單個匹配是否存在,你可以使用Array.prototype.some()這樣的方法;

this.goalsHome.some(goalHome => goalHome.comment === goal.comment); 

如果在陣列中的一個ATLEAST匹配(參見MDN Web Docs),其將返回true。

+0

不幸的是,這也不起作用。我得到這個錯誤: 屬性'評論'不存在類型'對象'。 :( – Sanne

0

我結束了使用stringify。

let goalFound = false; 
let goalsSide; 

    if (side == 'home') { 
     goalsSide = this.goalsHome; 
    } else { 
     goalsSide = this.goalsAway; 
    } 

for (let i = 0; i < goalsSide.length; i++) { 
      let stringGoals = JSON.stringify(goalsSide[i]); 
      let stringGoal = JSON.stringify(goal); 

      if (stringGoals == stringGoal) { 
       goalFound = true; 
       break; 
      } 
     } 

     if (goalFound != true) { 
      this.addGoalToArray(goal, side); 
     }