使用while循环在javascript中不断添加值

时间:2018-05-10 16:38:53

标签: javascript loops while-loop root

我是Javascript的新手,所以请耐心等待我这个基本问题,

我正在尝试将我的函数添加到一个字符串中的所有单个数字,然后继续这样做,直到我留下一个数字!

awk: cmd. line:1: BEGIN { FS="\t;" } {print  $1"\t"$2"\t"$3"\t"$4=$4-12"\t"$5=$4+50"\t"$6"\t"$7"\t"$8"\t"$9" "$10";"$11" "$12";"$13" "$14";"$15" "$16";"$17" "$18";"$19" "$20";"$21" "$22";"$23" "$24";"$25" "$26";"$27" "$28";"$29" "$30";"$31" "$32 ";" $33" "$34";"$35" "$36";"$37" "$38";" }
awk: cmd. line:1:                                                                                                                                                                                                                         ^ syntax error
awk: cmd. line:1: BEGIN { FS="\t;" } {print  $1"\t"$2"\t"$3"\t"$4=$4-12"\t"$5=$4+50"\t"$6"\t"$7"\t"$8"\t"$9" "$10";"$11" "$12";"$13" "$14";"$15" "$16";"$17" "$18";"$19" "$20";"$21" "$22";"$23" "$24";"$25" "$26";"$27" "$28";"$29" "$30";"$31" "$32 ";" $33" "$34";"$35" "$36";"$37" "$38";" }
awk: cmd. line:1:                                                                                                                                                                                                                                      ^ syntax error

我创建了一个while循环,但它只将数字加在一起,直到一个数字才重复,我无法理解为什么!

3253611569939992595156

113 // result of the above digits all added together

5 //result of 1+1+3

1 个答案:

答案 0 :(得分:2)

你正在适当地减少,但你没有做的就是重新分裂。尝试将其分解为单独的函数:

function digits(n) {
  return n.toString().split('').map(x =>Number(x));
}

然后每次分开:

function rootFunc(n) {
  var d = digits(n);
  while (d.length > 1) {
    d = digits(d.reduce(getSum));
  }

  return d;
}