重复输出一个给定的字符串的几种方法
Posted 靥放
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重复输出一个给定的字符串的几种方法相关的知识,希望对你有一定的参考价值。
方法1:通过 `while` 循环重复输出一个字符串
解题思路:while
语句只要指定的条件计算结果为true
的时候,就执行其语句。while
语句的语法是这样的:
1 while (expression) 2 statement
在每次通过循环之前计算条件结果。如果条件为true
,则执行语句。如果条件为false
,则执行继续 while 循环之后的任何语句。
只要条件为true
,语句就会执行。 这里是解决方案:
function repeatString(str, times) { //空字符,用来储存重复的字符串 var repeatedString = ‘‘; //当(times>0)时执行语句 while (times > 0) { repeatedString += str; times--; } //返回重复的字符串 return repeatedString; } //这里是测试 console.log(repeatString(‘abc‘, 3));
还可以用数组join()
拼接字符串,例如:
function res(str, times) { var resed = []; while (times > 0) { resed.push(str); times--; } return resed.join(‘‘); } console.log(res(‘abc‘, 3));
另一个变种可以用 for 循环:
function res(str, times) { var resed = ‘‘; for (var i = 0; i < times; i++) { resed += str; } return resed; } console.log(res(‘abc‘, 3));
方法2:通过条件判断和递归重复输出一个字符串
递归是一种通过重复地调用函数本身,直到它达到达结果为止的迭代操作的技术。为了使其正常工作,必须包括递归的一些关键特征。
第一种是基本情况:一个语句,通常在一个条件语句(如if
)中,停止递归。
第二种是递归情况:调用递归函数本身的语句。
这里是解决方案:
function res(str, times) { //当times为负数时则返回空字符串 if (times <= 0) { return ‘‘; } //如果times为1则返回字符串本身 if (times === 1) { return str; } //使用递归 else { return str + res(str, times - 1); } } console.log(res(‘abc‘, 3));
方法3:使用ES6 `repeat()` 方法重复输出一个字符串
这个解决方案比较新潮,您将使用 String.prototype.repeat() 方法:
repeat() 方法构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。 这个方法有一个参数 count
表示重复次数,介于0和正无穷大之间的整数 : [0, +∞) 。表示在新构造的字符串中重复了多少遍原字符串。重复次数不能为负数。重复次数必须小于 infinity,且长度不会大于最长的字符串。
这里是解决方案:
function res(str, times) { //如果times为正数,则返回重复的字符串 if (times > 0) { return str.repeat(times); } //如果times为负数,则返回空字符串 else { return ‘‘; } } console.log(res(‘abc‘, 3));
您可以使用三元表达式作为 if/else 语句的快捷方式,如下所示:
function res(str, times) { return times > 0 ? str.repeat(times) : ‘‘; } console.log(res(‘abc‘, 3));
原文链接:JavaScript面试题:重复输出一个给定的字符串
以上是关于重复输出一个给定的字符串的几种方法的主要内容,如果未能解决你的问题,请参考以下文章