2013-08-11 8 views
-1
var count=0 ; 
for(var x=0; x<data_len; x++) 
{ 
    count = count + num_arr[x]; 
} 
// alert(count); 

Если count = 352 Я хочу добавить 3 + 5 + 2, который является 10, а затем 1 + 0, который равен 1.Как добавить переменную в javascript?

+3

Ваш массив должен быть числовых строк, а не целые числа. используйте [parseInt (num_arr [x], 10) '] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt), чтобы получить правильное целое число. –

+0

Действительно, ваш вопрос немного неясен - слишком плохо, это было интересно. Интересно, правильно ли я ответил или нет, дайте мне знать :) ⇨ http://stackoverflow.com/a/22164643/1636522. – leaf

ответ

0
function sumParts(x) { 
    var sumX = 0; 
    var strX = x.toString(); 
    var arrX = strX.split(""); 
    for (a = 0; a < arrX.length; a++) { 
     sumX += parseInt(arrX[a], 10); 
    }; 
    return sumX; 
} 
y = sumParts(count); 
z = sumParts(y); 
// y = 10; (3 + 5 + 2) 
// z = 1; (1 + 0) 

И, я считаю (не тестировалось), если return был изменен на return sumParts(sumX), он будет продолжаться до тех пор, пока он не станет целым числом в одну цифру.

+0

Спасибо за ответ .. но я получаю значение -2 ИЛИ -1 из z зависит от count – user40138

+0

sumX возвращает -1 внутри цикла – user40138

+0

sumX + = parseInt (arrX.indexOf (a), 10); Здесь нет необходимости использовать индекс i, чтобы получить его через sumX + = parseInt (arrX [a], 10); Спасибо за решение – user40138

0

У вас есть массив строк, а не чисел. Вы можете преобразовать их в числа с:

count = count + +num_arr[x]; 

Второй + является унарный плюс, и ввергнут num_arr[x] к ряду.

Если ваши номера все целые числа, вы можете использовать:

count = count + parseInt(num_arr[x], 10); 

или (если у вас есть поплавки):

count = count + parseFloat(num_arr[x]); 
0

count Преобразовать в строку:

var count = 352; 
count += ''; // makes a string : "352" 
while (count.length > 1) { 
    count = Function('return ' + count.split('').join('+') + ';')() + ''; 
} 

Эта часть:

Function('return ' + count.split('').join('+') + ';') 

дает последовательно:

function() { return 3+5+2; } 
function() { return 1+0; } 
Смежные вопросы