使用 JavaScript 重复字符串
本教程展示了如何使用 JavaScript 重复字符串。在这里,重复一个字符串意味着将确切的字符串复制特定次数。
我们可以使用不同的方法将字符串重复指定次数。我们可以根据项目需要使用以下任意一种。
function repeatStr(str, numOfTimes) {
var repeatedStr = "";
while (numOfTimes > 0) {
repeatedStr += str;
numOfTimes--;
}
return repeatedStr;
}
console.log(repeatStr("Hi", 6));
输出:
"HiHiHiHiHiHi"
我们将字符串 Hi
和数字 6
传递给 repeatStr()
方法,该方法使用 while
循环对提供的字符串进行指定次数的迭代。在这里,它打印了六次 Hi
。
我们也可以通过提供一个字符作为第一个参数并提供一个数字作为第二个参数来对一个字符执行相同的操作。例如,repeatStr('M', 5)
。
递归是函数调用自身以重复操作直到获得所需结果的地方。
在递归中,编写代码的顺序对于实现目标很重要。否则,该函数将继续调用自身,因为它找不到端点(停止条件)。
为了让函数起作用,我们定义了告诉停止条件的基本情况
。此外,我们编写了 recursive case
来调用函数本身。
检查以下示例。
function repeatStr(str, numOfTimes) {
if(numOfTimes < 0)
return "";
if(numOfTimes === 1)
return str;
else
return str + repeatStr(str, numOfTimes - 1);
}
console.log(repeatStr("Hi", 6));
输出:
"HiHiHiHiHiHi"
在这里,函数 repeatStr()
检查 numOfTimes
,如果它小于零,则返回空字符串。
如果 numOfTimes
为 1,则返回传递的字符串。否则,执行递归调用以迭代操作以获得预期的输出。
function repeatStr(str, numOfTimes) {
if (numOfTimes > 0)
return str.repeat(numOfTimes);
else
return "";
}
console.log(repeatStr("xyz", 2));
输出:
"xyzxyz"
在这里,我们使用 ES6 原生的 repeat()
方法,该方法接受一个数字作为参数,并将字符串重复该次数。
例如,repeat()
方法在上面的代码片段中迭代了两次。repeat()
方法不会修改原始字符串,而是构造并返回重复的字符串。
如果我们传递一个浮点数,它将被转换为一个整数(参见下面的代码)。如果我们不提供数字或传递零 (0
),它会返回一个空字符串。
如果指定的数字是负数或不小于无穷大,它会抛出 RangeError
。让我们通过编写一小段代码来理解它。
var str = "xyz";
console.log(str.repeat(2)); // xyzxyz
console.log(str.repeat(0)); // ""
console.log(str.repeat()); // ""
console.log(str.repeat(3.4));// xyzxyzxyz
console.log(str.repeat(-1)); // RangeError
console.log(str.repeat(1/0));// RangeError
function repeatStr() {
var str = "Hello";
var repeatedStr = "";
repeatedStr = Array(3).join(str);
return repeatedStr;
}
console.log(repeatStr());
输出:
"HelloHello"
我们使用 Array 的 join()
函数将字符串连接特定次数。
如果我们写了 3
,你可能想知道为什么我们会收到两次 Hello
。这是因为数组从 0
开始,到 n-1
结束。
这就是 join()
方法将提供的字符串连接 n-1
次的原因。
const _ = require("lodash");
function repeatStr(str, numOfTimes) {
if (numOfTimes > 0)
return _.repeat(str,numOfTimes);
else
return "";
}
console.log(repeatStr("xyz", 2));
输出:
"xyzxyz"
在这里,Lodash 库的 repeat()
方法也像 ES6 repeat()
方法一样重复字符串。
唯一的区别是 Lodash 的 repeat()
方法将字符串和 count 作为参数,而 ES6 的 repeat()
方法只使用一个参数:count
。
相关文章
Do you understand JavaScript closures?
发布时间:2025/02/21 浏览次数:108 分类:JavaScript
-
The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.
Do you know about the hidden traps in variables in JavaScript?
发布时间:2025/02/21 浏览次数:178 分类:JavaScript
-
Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av
How much do you know about the Prototype Chain?
发布时间:2025/02/21 浏览次数:150 分类:JavaScript
-
The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start
用 jQuery 检查复选框是否被选中
发布时间:2024/03/24 浏览次数:102 分类:JavaScript
-
在本教程中学习 jQuery 检查复选框是否被选中的所有很酷的方法。我们展示了使用直接 DOM 操作、提取 JavaScript 属性的 jQuery 方法以及使用 jQuery 选择器的不同方法。你还将找到许多有用的
jQuery 中的 Window.onload 与 $(document).ready
发布时间:2024/03/24 浏览次数:180 分类:JavaScript
-
本教程演示了如何在 jQuery 中使用 Window.onload 和 $(document).ready 事件。