Это логические шаги, которые я должен сделать с jQuery:
x
2 числа цифры (целое число), полученное из input.value ();
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;
Спасибо!
Я бы попробовал:
function process (x) {
if ((x != 33) && (x != 44)) {
while (x > 9) {
x = Math.floor (x / 10) + (x % 10);
}
}
return x;
}
Я не вижу особых причин для преобразования его в строку, если вы можете использовать арифметические операции.
if (x != 33 && x != 44) {
while (x > 9) {
var parts = ('' + x).split('');
x = parseInt(parts[0]) + parseInt(parts[1]);
}
return x;
} else {
return x;
}
Работает только если входные данные действительно максимум 2 цифры в длину, как вы говорите, иначе вам нужно будет добавить числа в цикле for
по parts.length
. Например:
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;
}