Forums

The forums ran from 2008-2020 and are now closed and viewable here as an archive.

Home Forums JavaScript Checking accuracy of a textarea [RESOLVED]

  • This topic is empty.
Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #24730
    brianatlarge
    Member

    As you can tell by my many questions lately, I’ve been playing with javascript a lot.

    The purpose of this script is to come up with a percentage of accuracy by looking at what you typed and comparing it to the original text. Take a look:

    Code:


    Accuracy Test


    Well, hello there!



    What's happening is after you type in your stuff and click on "How did I do?", the following happens:

    1) An array is created by filling in the indexes with the words of bodyText.
    2) Another array is created by filling in the indexes with the words of customWords.
    3) I created a variable consisting of how many words are in the passage of bodyText.
    4) For every word in the passage of bodyText, each word is checked with the corresponding word of customWords textarea. If a word matches, then fieldTextWordCount is incremented by 1.
    5) Accuracy is then determended by multiplying however many words of customWords matched with bodyText by 100, then dividing by however many words are in bodyText.
    6) Accuracy is outputted to the accuracy div.

    Unfortunately, after thinking all this out, it just doesn't work. Anyone see anything wrong with it?

    #57073
    James
    Member

    Hi Brian,

    I messed around a little bit and managed to solve your problem; here’s a working function:

    Code:
    function checkAcc() {

    var fieldTextWordCount = 0,
    mainWords = document.getElementById(“bodyText”).value.split(” “),
    customWords = document.getElementById(“customWords”).value.split(” “),
    bodyTextWordCount = mainWords.length;

    for ( var i = 0; i < bodyTextWordCount; i++ ) { if(mainWords[i] == customWords[i]) { fieldTextWordCount++; } } var accuracy = (fieldTextWordCount * 100) / bodyTextWordCount; document.getElementById("accuracy").innerHTML = "Your accuracy was " + accuracy + "%"; }

    The main problem was that you were trying to create an array out of an already existing array. Running the ‘split’ method on a string returns an array so there was no need to call the Array constructor on top of that.

    I.e.

    Code:
    var str = ‘1 2 3’;

    // Wrong:
    new Array(str.split(‘ ‘)); // Returns [ [1,2,3] ]

    // Right:
    str.split(‘ ‘); // Return [1,2,3]

    #57081
    brianatlarge
    Member

    Thanks so much!!!

    I saw the split() method on the w3c schools site, but I guess it didn’t make it clear enough that it made the array for you. This works perfectly now!

Viewing 3 posts - 1 through 3 (of 3 total)
  • The forum ‘JavaScript’ is closed to new topics and replies.