Javascript:用while循环在给定的count参数中重复一个字符串
Javascript: repeat a string in given a count parameter with a while loop
在问这个问题之前,我做了一个非常彻底的搜索,但我找不到我想要的东西。我想说的是,这是我用JavaScript编写代码的第五天,所以请对我宽容一点!
我正在为一个成熟的程序学习预备编码课程,我们的目标之一是编写一个函数repeatString(string, count)
,它以字符串和您希望它重复的次数作为参数。这是我的递归版本:
function repeatString(string, count) {
if ( count === 0 ) {
return "";
}
if ( count === 1 ) {
return string;
}
if ( count > 1 ) {
return string + repeatString(string, count - 1);
}
}
然后我们应该使用while而不是递归来重写函数。这就是我陷入困境的地方:
function repeatString(string, count) {
var num = 0;
if ( count === 0 ) {
return "";
}
while ( num < count ) {
num += 1;
return string;
}
}
我当前的代码只返回一次字符串,无论计数是多少,除非计数为零。我确信有一个明显的错误就在我面前,但我的初学者并没有注意到。
试试这个,你需要在返回字符串之前构建它。如果你不使用递归,你只返回一次:
function repeatString(string, count) {
var num = 0;
var str = "";
if ( count === 0 ) {
return "";
}
while ( num < count ) {
num += 1;
str = str + string;
}
return str;
}
repeatString("asdf",2)
"asdfasdf"
这里有一个简单的例子:
function repeatString(string, count) {
return new Array(count + 1).join(string);
}
repeatString('asd', 2) // "asdasd"
这里也有一个,带有es6
var repeater = (str) => {
return (times) => {
return [...Array(times)].reduce((p,c) => {
return p.concat(str)
}, []).join('')
}
}
repeater('yoyo')(10)
or
var R = repeater('test')
R(5)
如何在JavaScript中重复字符串?提供了两种优雅的解决方案,都基于初始化所需大小的数组,然后连接其项以形成结果字符串。
如果必须使用while,那么您仍然可以使函数更短。注意,使用保留字来命名变量的风格很差,所以为了清楚起见,我将"string"替换为"s",将"str"替换为"result"。
function repeatString(s, count) {
var result = "";
var num = 1;
while ( num++ <= count ) {
result += s;
}
return result;
}
最短答案:
function repeatString(str,num){
return str.repeat(num);
}
repeatString('hello', 2);
相关文章:
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 制作一个regex来验证只有一个数字的字符串
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- NodeJS在一个较大的字符串中获取一个字符串的索引
- jquery从2个json字符串构建一个复选框表单
- 在Javascript中将一个值和字符串数组转换为if语句
- Javascript:用while循环在给定的count参数中重复一个字符串
- 如何使用另一个字符串作为模板从字符串中提取数据
- 用jQuery将字符串从一个类替换为另一个类
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 如何检查一个字符串的所有字符是否都存在于另一个字符串中
- JavaScript:如何创建一个具有字符串名称的对象
- 如何从 javascript 中可能具有一个或多个图像的字符串中仅获取图像名称
- 在不使用循环的情况下,从一个数据库字符串值向javascript数组添加多个对象
- 从表单中动态生成一个字符串,传递给通过AJAX加载的PHP文件
- 当我JSON.stringfy(对象)时,我得到一个疯狂的字符串作为值
- 我可以使用JS一次使用JSON数组中的一个字符串吗
- 使用javascript替换字符串中除第一个和最后一个之外的所有字符
- 获取一个对象´s属性的名称使用字符串
- 删除一个“;从javascript中的字符串末尾