私は初心者プログラマーであり、複雑な質問のために前もって謝罪しています。Forループ内にカウンタを作成しますか?
私が画面上に提示した文字のシリーズは「単語」または「ない言葉」を作る場合は、回答者が決める必要がある実験的研究のための語彙判断タスクを作成しようとしています。すべては私がランダムに別の入力ファイル(INPUT.TXT)から80回の試験の各ワード(カテゴリーA)または非単語(カテゴリB)を選択したいビットを除いて、合理的にうまく機能します。ランダム化は機能しますが、 "round.catIndex = j;"を使用しているため、各リスト(カテゴリAまたはB)の一部の要素はスキップされます。ここで、「j」は連続する各試行のループです。いくつかの試行はカテゴリAからランダムにカテゴリBから選択するため、「j」は各カテゴリのリストを連続して移動しません。代わりに、カテゴリAのリストの要素は、1,2,5,8,9,10などのように選択できます(ランダム化のために毎回変わります)。
長いストーリー(!)を短くするには、それぞれの試行でforループ内で動作するカウンタを作成し、カテゴリAとBのすべての語句と非語句がそれぞれ使用されるようにします字句決定タスク?私がこれまでに試したことはすべて正しく動作しないか、JavaScriptを完全に破壊します。
は、以下の私のコードスニペットで、完全なコードはhttp://50.17.194.59/LDT/trunk/LDT.jsで入手可能です。また、語彙全体の決定タスクはhttp://50.17.194.59/LDT/trunk/LDT.phpでアクセスできます。ありがとう!
function initRounds()
{
numlst = [];
for (var k = 0; k<numrounds; k++)
{
if (k % 2 == 0) numlst[k] = 0;
else numlst[k] = 1;
}
numlst.sort(function() {return 0.5 - Math.random()})
for (var j = 0; j<numrounds; j++)
{
var round = new LDTround();
if (numlst[j] == 0)
{
round.category = input.catA.datalabel;
}
else if (numlst[j] == 1)
{
round.category = input.catB.datalabel;
}
// pick a category & stimulus
if (round.category == input.catA.datalabel)
{
round.itemtype = input.catA.itemtype;
round.correct = 1;
round.catIndex = j;
}
else if (round.category == input.catB.datalabel)
{
round.itemtype = input.catB.itemtype;
round.correct = 2;
round.catIndex = j;
}
roundArray[i].push(round);
}
return roundArray;
}
詳細なコメントをいただきありがとうございます。あなたが推測したように、後者の提案は私がやりたいことの行に沿っています(私はそれをどうやって行うのか分かりませんでした)。例を投稿することができれば、それを自分のプログラムに追加する方法を理解できるはずです。再度、感謝します! –
ねえ、私は昨夜答えたときに寝ました。私はそれを解決する方法で質問を編集しました。 –
ああ、それは本当にクールです。あなたの説明は、この問題に対処する方法を理解するのに役立ちます(ついに!)。どうしたらいいのか教えてあげよう... –