2017-01-27 85 views
-1

我有一個問題數組,它有兩個元素,即玩家1的問題和玩家2的問題。該問題被安排的對象,像這樣:在包含數組的數組內尋找元素

var tempQuestion = { 
    qId: i, 
    leftQ: leftQ, 
    rightQ: rightQ, 
    correctAnswer: correctAnswer, 
    allAnswers: sortedAnswers, 
    questionText: questionText 
} 

我要訪問的整個問題的對象,並拉了這一點,到目前問題的另一個數組(每個人),所以無論玩家有相同的進展,但他們不不會超越彼此的問題。所以我試圖通過在ID字段中找到數組來將它們從數組中取出(很像在C#或VB MVC應用程序中那樣)。

for (j = 0; j < playerCount; j++) { 
    // Pick a random question 
    this.Questions.push(this.players[j].questions); 
    var rand = this.Questions[j].length - 1; 
    function findQ(q) { 
     return q.qId === rand; 
    } 
    this.CurrentQuestion[j] = this.Questions[j].find(findQ); 
} 

然而,這返回CurrentQuestion作爲空值。

調試告訴我,this.Questions是填充的,所以這裏沒有問題,並且玩家數也被填充,所以它也不是那樣。而this.CurrentQuestion[j] = this.Questions[j].find(findQ);線是打破了錯誤的應用程序之一:

this.CurrentQuestion is null

+5

不屬於'for'循環。請提供[mcve]。我們不知道什麼'this.CurrentQuestion'是 – charlietfl

+0

消息說這個問題與'this.CurrentQuestion.'是怎麼得到初始化? – JETM

+0

這是如何this.CurrentQuestion得到initalised - 所以這是我可以給你的最好的例子 - 我沒有遺漏任何 –

回答

0

this.CurrentQuestion必須先存在,然後才能訪問它的元素

開始之前的循環添加陣列:

this.CurrentQuestion=[]; 
初學者函數聲明的
相關問題