javascript - 在 JavaScript 中将对象放入数组中

标签 javascript arrays

我目前正在使用 MVC JS 框架,我希望能够获得一个对象列表,我可以从循环中随机取出一个对象列表。到目前为止,我已经成功创建了一个函数,可以找到一个随机 ID 并提取该对象,这样该部分就不再是问题了。这就是对象数组中的内容:

QuestionsSetup: function(gameType) {

        // Setup Resources
        var c = this.View.children;
        var player1qs = [];
        var leftQ = 0;
        var rightQ = 0;
        var maxQValue = 50;
        var minQValue = 1;

        // Fill array with questions 
        for (var i = 0; i < 5; i++) {

            // Build a random question with numbers between 1 and 50

            // Build Question Text to output to user

            // Generate correct answers based on generated question

            // Generate unsorted, incorrect answers and add them to an array

            //Place Questions into object
            questions.qId = i;
            questions.leftQ = leftQ;
            questions.rightQ = rightQ;
            questions.correctAnswer = correctAnswer;
            questions.allAnswers = sortedAnswers;
            questions.questionText = questionText;

            //Add to array of questions
            player1qs.push(questions);
        }
    }

这确实将它们添加到数组中,但是当添加新对象时,它也会更改数组中现有对象的值,因此无论我稍后取出哪一个,它们的结果都是相同的。问题对象在模型文件夹中其自己的文件中声明。有什么方法可以在每个循环开始时告诉应用程序我想要新的空问题对象而不是引用现有的问题对象?我知道你可以使用类似的后端语言,所以我拒绝相信 JavaScript 中也不存在如此简单的东西?

最佳答案

肯定缺少为每个数组项声明一个变量。

QuestionsSetup: function(gameType) {

    // Setup Resources
    var c = this.View.children;
    var player1qs = [];
    var leftQ = 0;
    var rightQ = 0;
    var maxQValue = 50;
    var minQValue = 1;

    // Fill array with questions 
    for (var i = 0; i < 5; i++) {

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


        // ...


        //Add to array of questions
        player1qs.push(tempQuestion);
    }
}

在循环内使用单独的闭包也可能是一个好主意。

关于javascript - 在 JavaScript 中将对象放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41849377/

相关文章:

php - 使用 PHP 创建 cookie,但从 javascript 读取时遇到困难

javascript - 同源政策,谷歌浏览器, Canvas 和文件 ://scheme

javascript - 通过分散另一个数组来对数组进行分组

python - 交错4个相同长度的python列表

.net - .NET 数组的最大大小

javascript - 使用 Ext.util.Sortable 对数组进行排序

arrays - 从 Fortran 中的子例程返回分配的字符串数组?

javascript - jQuery 如果.hasClass,则启用.hover

javascript - 如何使用 Angular.js 和 PHP 按字母顺序显示列表

javascript - 如何在我的日期选择器上只允许选择星期日?