var count=0 ;
for(var x=0; x<data_len; x++)
{
count = count + num_arr[x];
}
// alert(count);
count = 352
10 である 3+5+2 と 1 である 1+0 を追加したい場合。
var count=0 ;
for(var x=0; x<data_len; x++)
{
count = count + num_arr[x];
}
// alert(count);
count = 352
10 である 3+5+2 と 1 である 1+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; }
数値ではなく、文字列の配列があります。次の方法で数値に変換できます。
count = count + +num_arr[x];
2 番目+
は単項プラス演算子で、数値にキャストさnum_arr[x]
れます。
数値がすべて整数の場合は、次を使用できます。
count = count + parseInt(num_arr[x], 10);
または(フロートがある場合):
count = count + parseFloat(num_arr[x]);
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 sumParts(sumX)
、それが1桁の整数になるまで続くと信じています。