开发者

Cannot invoke function

See the bottom of this post;

function isVowel(aCharacter)
    {
        return ((aCharacter == 'a') || (aCharacter == 'A')||
                (aCharacter == 'e') || (aCharacter == 'E')||
                (aCharacter == 'i') || (aCharacter == 'I')||
                (aCharacter == 'o') || (aCharacter == 'O')||
                (aCharacter == 'u') || (aCharacter == 'U')||
                (aCharacter == 'y') || (aCharacter == 'Y'));
    }


function myF(aString)
{
    // variable to hold resultString
    var resultString = '';

    // variable to hold the current and previous characters
    var currentCharacter = '';
    var precedingCharacter = '';

    // in the case of the first character in the string there is no
    // previous character, so we assign an empty string '' to the variable at first
    //precedingCharacter = '';

    // TODO  part (ii)
    // add code as directed in the question

     var i = 0;
    for( i; i < sString.length; ++i)
    {

        currentCharacter = sString.charAt(i);
        if (isVowel(currentCharacter) && (!isVowel(precedingCharacter)))
        {
        resultString = resultString + 'ub';
        }
        resultString = resultString + curr开发者_开发百科entCharacter;
        precedingCharacter = currentCharacter;
    } 

    return resultString;
}

var string1 = "the cat sat on the mat"; 
var result1 = myF(string1);
document.write(string1);//THIS ISN'T GOING TO BE DISPLAYED, BUT WHY?

document.write('<BR>');
document.write(result1);


You iterate on sString wich doesn't exist and not on your parameter aString.


Where is sString being declared in your function? Try with aString (or declare var sString = aString) and try again.


Please change function myF(aString) to function myF(sString)


There is a naming mistake. Here is a working copy of your code . http://jsfiddle.net/hXarY/

You can try using "firebug" to catch such errors if you do not already do.

function isVowel(aCharacter)
    {
        return ((aCharacter == 'a') || (aCharacter == 'A')||
                (aCharacter == 'e') || (aCharacter == 'E')||
                (aCharacter == 'i') || (aCharacter == 'I')||
                (aCharacter == 'o') || (aCharacter == 'O')||
                (aCharacter == 'u') || (aCharacter == 'U')||
                (aCharacter == 'y') || (aCharacter == 'Y'));
    }


function myF(sString)  // this should be sString , not aString
{
    // variable to hold resultString
    var resultString = '';

    // variable to hold the current and previous characters
    var currentCharacter = '';
    var precedingCharacter = '';

    // in the case of the first character in the string there is no
    // previous character, so we assign an empty string '' to the variable at first
    //precedingCharacter = '';

    // TODO  part (ii)
    // add code as directed in the question

     var i = 0;
    for( i; i < sString.length; ++i)
    {

        currentCharacter = sString.charAt(i);
        if (isVowel(currentCharacter) && (!isVowel(precedingCharacter)))
        {
        resultString = resultString + 'ub';
        }
        resultString = resultString + currentCharacter;
        precedingCharacter = currentCharacter;
    } 

    return resultString;
}

var string1 = "the cat sat on the mat"; 
var result1 = myF(string1);
document.write(string1);//THIS ISN'T GOING TO BE DISPLAYED, BUT WHY?

document.write('<BR>');
document.write(result1);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜