Create a Counter within a For-Loop?

Posted by Todd Hartman on Stack Overflow See other posts from Stack Overflow or by Todd Hartman
Published on 2012-03-20T21:10:34Z Indexed on 2012/03/20 23:29 UTC
Read the original article Hit count: 215

Filed under:
|
|
|

I am a novice programmer and apologize upfront for the complicated question.

I am trying to create a lexical decision task for experimental research, in which respondents must decide if a series of letters presented on the screen make a "word" or "not a word". Everything works reasonably well except for the bit where I want to randomly select a word (category A) or nonword (category B) for each of 80 trials from a separate input file (input.txt). The randomization works, but some elements from each list (category A or B) are skipped because I have used "round.catIndex = j;" where "j" is a loop for each successive trial. Because some trials randomly select from Category A and other from Category B, "j" does not move successively down the list for each category. Instead, elements from the Category A list may be selected from something like 1, 2, 5, 8, 9, 10, and so on (it varies each time because of the randomization).

To make a long story short(!), how do I create a counter that will work within the for-loop for each trial, so that every word and nonword from Category A and B, respectively, will be used for the lexical decision task? Everything I have tried thus far does not work properly or breaks the javascript entirely.

Below is my code snippet and the full code is available at http://50.17.194.59/LDT/trunk/LDT.js. Also, the full lexical decision task can be accessed at http://50.17.194.59/LDT/trunk/LDT.php. Thanks!

    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;
    }

© Stack Overflow or respective owner

Related posts about php

Related posts about JavaScript