Witam!
Mam już prawie kompletny kalkulator, ale występuje tutaj spory problem: liczby można dodawać tylko parami. Podam może najpierw fragment kodu, odpowiadający za ten błąd.
Kod
this.count = function() {
    if(this.nCache.length > 1)
    {
        var m=0;
        for(i=0 j=0; i<this.nCache.length; i=i+2, j++)
        {
            this.res[j] = this.switchFuncs(i);
            m += parseInt(this.res[j]);
        }
         document.getElementById(sc).innerHTML = this.res[0]+"<br/>"+this.res[1]+"<br/>"+m; // tylko w ramach testów
    }
    else {
        this.result = this.nCache[0];    
    }
    this.lastBtAct = 'yes';
}
this.switchFuncs = function(x) {
    switch(this.aCache[x])
    {
        case 'add':
            if((this.nCache.length%2 != 0) && (x == this.nCache.length-1))
            {
                return parseInt(this.nCache[x]*1);
            }
            else {
                var ipl = this.nCache[x+1];    
                return parseInt((this.nCache[x]*1)+(ipl*1));        
            }
        break;        
    }
}

}

Problem leży w tym, że mogę dodawać tylko 2, 4, 6 (itd.) liczb. Gdy dodam np. 3+2+1 otrzymuję wynik NaN (Not-A-Number). Mam zapewne jakiś błąd przy pętli, ale nie wiem jaki...
Dziwne rozwiązanie przy opcji w switch'u? Chodzi i dodawanie kolejnych dwóch liczb lub dodanie jednej, jeśli jest to ostatni element nieparzystej tablicy.
Proszę o pomoc.
PS. W razie czego:
nCache - tablica z wklepanymi liczbami (także wielocyfrowymi),
aCache - tablica z kolejnymi działaniami (tutaj jest opracowane jedno - add - dodawanie)




// NIEAKTUALNE ;]