2010-05-02 13 views
5

Bu jquery yapmak gerekir mantıksal adımlar şunlardır:JQuery dizeye tamsayı dönüştürmek ve arka

x 2 basamaklı bir sayı (tam sayı) olduğu) (bir input.value elde edilir;

If var x is **not** 33 or 44 
    Convert this 2 digit number to string; 
    split the string in 2 parts as number; 
    Add these 2 values until they reduce to single digit; 
    Return var x value as this value; 
Else 
    Return var x value literally as 33 or 44 whatever is the case; 

Teşekkürler!

+0

Sadece Javascript de kabul edilebilir mi? – BalusC

+0

emin ama bir bölümü özledim: Bu 2 değeri ekleyin (tek haneye düşene kadar); Var var x değerini bu değer olarak döndür. – Richbyte

cevap

3
if (x != 33 && x != 44) { 
    while (x > 9) { 
     var parts = ('' + x).split(''); 
     x = parseInt(parts[0]) + parseInt(parts[1]); 
    } 
    return x; 
} else { 
    return x; 
}  

başka parts.length üzerinde for döngü içinde numara eklemek gerekir, girdi dediğiniz gibi 2 basamak uzunluğunda gerçekten maksimum olması durumunda çalışır. Örn .:

if (x != 33 && x != 44) { 
    while (x > 9) { 
     var parts = ('' + x).split(''); 
     for (var x = 0, i = 0; i < parts.length; i++) { 
      x += parseInt(parts[i]); 
     } 
    } 
    return x; 
} else { 
    return x; 
}  
+0

Teşekkürler BalusC, Hat 8> x dönüşünde bir sözdizimi hatası alıyorum; herhangi bir fikir neden? – Richbyte

+0

Belki de bir '' '' fonksiyonuna sokmayı unuttun mu? – BalusC

1

denemek istiyorum:

function process (x) { 
    if ((x != 33) && (x != 44)) { 
     while (x > 9) { 
      x = Math.floor (x/10) + (x % 10); 
     } 
    } 
    return x; 
} 

Sana aritmetik işlemleri kullanabilirsiniz zaman bir dizeye dönüştürmek için çok az neden göremiyorum.

+0

Sadece CopyPaste sonra diğer iki 'parts' adlandırmak unutmak :) – BalusC

+0

Teşekkür BalusC, sorun ebeveyn jquery işlevinin bir parçası olarak bu biraz entegre yaşıyorum . Ben Jquery valriables :(ile bunu yapmak gerekir. – Richbyte

+0

sen, ben en iyi şekilde bakıyordu gerekmez! – Richbyte