删除循环javascript中的空格

5anewei6  于 2023-02-07  发布在  Java
关注(0)|答案(3)|浏览(144)

这是一个递减计数器函数。我扔任何数字,它开始倒计时到零,我在它们之间添加空格,但问题是最后一个空格!我怎么才能删除它?

function countDown(number) {
  var s = "";
  for (let i = number; i >= 0; i--) {
    s += i + " ";
  }
  console.log("{" + s + "}"); // I add the brackets to show the last space  
}
    
countDown(10)

// result is : {10 9 8 7 6 5 4 3 2 1 0 }
siv3szwd

siv3szwd1#

这是Array.join函数的一个很好的用例。

function countDown(number) {
  const list = [];
  for (let i = number; i >= 0; i--) {
    list.push(i);
  }
  console.log("{" + list.join(' ') + "}"); 
}
    
countDown(10)

// result is : {10 9 8 7 6 5 4 3 2 1 0}
jtw3ybtb

jtw3ybtb2#

这是一个必须在循环中处理的常见模式。
通常你可以通过在循环的开始或结束处设置一个特殊的case来解决这个问题。在这个例子中,在开始处设置一个case是很容易的:

function countDown(number) {
  var s = number;
  for (let i = number - 1; i >= 0; i--) {
    s += " " + i;
  }
  console.log("{" + s + "}"); // I add the brackets to show the last space  
}
    
countDown(10)

// result is : {10 9 8 7 6 5 4 3 2 1 0}

只需将s赋给起始数字,并将起始数字减1。

1sbrub3j

1sbrub3j3#

使用“低级”Javascript,没有内置函数,诀窍是在项目之前添加分隔符,而不是在项目之后:

function countDown(number) {
   let s = String(number)
   for (let i = number - 1; i >= 0; i--)
      s += ' ' + i
   return s
}

console.log(JSON.stringify(countDown(10)))

如果允许使用内置函数,则甚至不需要循环就可以生成以下结果:

result = [...new Array(11).keys()].reverse().join(' ')
console.log(result)

相关问题