0

var count = 0;
var arr = [];

function Split(number) {
  if (Math.floor(number / 10) > 0) {
    for (var count = 0; count < number.toString().length; count++)
      arr[count] = number % 10;
    number = Math.floor(number / 10);
  }
  return arr;
}
document.write(Split(2345))

它返回 5,5,5,5 而我预计结果是 2,3,4,5 请告诉我哪里出了问题。谢谢!

4

1 回答 1

1

你的错误在这里:

for (var count = 0; count < number.toString().length; count++)
  arr[count] = number % 10;
number = Math.floor(number / 10);

只有第一个语句包含在 for 循环中,第二个语句仅在 for 循环结束后运行。您需要在两个语句周围加上大括号,以便在每次迭代时都运行。

for (var count = 0; count < number.toString().length; count++) {
  arr[count] = number % 10;
  number = Math.floor(number / 10);
}

但是您仍然会得到错误的结果,因为您重置了每次迭代的计数限制。在开始时设置一次。

var count = 0;
var arr = [];

function Split(number) {
  if (Math.floor(number / 10) > 0) {
    for (var count = 0, countLen = number.toString().length; count < countLen; count++) {
      arr[count] = number % 10;
      number = Math.floor(number / 10);
    }
  }
  return arr;
}
document.write(Split(2345));

于 2019-10-10T02:10:53.097 回答