現在、MVC JSフレームワークで作業しています。ループ上でランダムなエントリを取ることができるオブジェクトのリストを取得したいと考えています。これまでは、ランダムなIDを見つけ出し、そのオブジェクトを引き出してその部分が問題にならないようにする関数を作成しました。これは、オブジェクトの配列の中に何が起こっているのです。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++) {
// 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);
}
}
これは、配列に追加しますが、新しいオブジェクトを追加するとき、それらはすべて同じなしに出てくるので、それはまた、アレイ内の既存のオブジェクトの値を変更します私が後で引っ張るもの。質問オブジェクトはmodelsフォルダ内のそれ自身のファイルで宣言されています。各ループの開始時に、既存のものを参照するのではなく、新しい空の質問オブジェクトをアプリケーションに伝える方法はありますか?私はあなたが同様のバックエンドの言語習慣の中でできることを知っているので、JavaScriptにはあまりにも単純なことが存在しないことを信じたくないのですか?
あまりにも多くのコードは、最小限の例に来てみてくださいありますしてください – Axnyff
にそれを簡素化関連部分 –
これは参照渡しなので、元のデータを更新すると元の参照データが更新されます。毎回新しい質問オブジェクトを使用する必要がありますか? –