在包含数组内的数组内查找元素

时间:2017-01-27 13:57:07

标签: javascript arrays

我有一个问题数组,它有两个元素,分别是玩家1的问题和玩家2的问题。问题是这样排列的对象:

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

我想访问整个问题对象并将其拉出到另一组当前问题中(每个玩家一个),因此两个玩家都有相同的进度,但他们不会覆盖彼此的问题。因此,我尝试使用ID字段上的find将它们从数组中拉出(就像在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.CurrentQuestion[j] = this.Questions[j].find(findQ);行是使用错误打破应用程序的行:

  

this.CurrentQuestion为null

1 个答案:

答案 0 :(得分:0)

数组this.CurrentQuestion必须先存在才能访问它的元素

在开始循环之前添加:

this.CurrentQuestion=[];