由于某种原因,Javascript函数无法使用某些if / else语句

时间:2012-12-09 06:27:34

标签: javascript arrays function if-statement

由于某些奇怪的原因,我无法弄明白,当我在其中包含这些if / else语句时,代码将无法工作,当它们不存在时,它可以正常工作。我认为这与我附加到if / else语句的条件有关,因为当使用更简单的条件时它似乎没问题。有人可以告诉我我做错了吗?

    function wordSplit(){
        var sentence = document.getElementById("two").value;
        var userWords=sentence.split(" ");
        while(t<userWords.length){
            alert(userWords[t]);
            t++
        };
        x = 0;
        for (var x = 0; x < userWords.length; x++){
            y = 0;
            for (var y = 0; y < vocab.length; y++){

                if (y<vocab.length) {
                    y++
                };
                else if (vocab[y] == userWords[x]){
                    y = 0;
                    x++
                };
                else if(y<vocab.length) {
                    y++
                };
                else if (y == vocab.length){
                    y = 0;
                };
                else if (y == 0)
                {
                    vocab.push(userWords[x]);
                    x++
                };

            };


        };
    };

重申一下,据我所知,问题肯定在于if else部分,因为当它被移除或改变为更简单时,它突然起作用。

1 个答案:

答案 0 :(得分:0)

@DCoder是正确的,您需要删除额外的;

HTML:

<input type="text" id="two" value="What the hell is wrong here??" />​

JavaScript的:

wordSplit();

function wordSplit() {
    var vocab = [];
    var sentence = document.getElementById("two").value;
    var userWords = sentence.split(" ");
    var t = 0;
    while (t < userWords.length) {
        alert(userWords[t]);
        t++
    };
    x = 0;
    for (var x = 0; x < userWords.length; x++) {
        y = 0;
        for (var y = 0; y < vocab.length; y++) {

            if (y < vocab.length) {
                y++
            } else if (vocab[y] == userWords[x]) {
                y = 0;
                x++
            } else if (y < vocab.length) {
                y++
            } else if (y == vocab.length) {
                y = 0;
            } else if (y == 0) {
                vocab.push(userWords[x]);
                x++
            }

        }


    }
}​

Fixed Live Demo