重复字符串的方式有多种方法,下面介绍几种简短的方式。
最先想到的应该就是使用 for
循环重复字符串了吧!
const str = 'LOVE'
const arr = []
for (let i = 1; i <= 3; i++) {
arr.push(str)
}
arr.join('') // 'LOVELOVELOVE'
String.prototype.repeat()
方法返回一个新字符串,该字符串包含调用该方法的字符串的指定数量的副本。
'LOVE'.repeat(3) // 'LOVELOVELOVE'
'Hey'.repeat(2) // 'HeyHey'
'Hi'.repeat(0) // ''
Array.prototype.fill()
方法可以用指定的值填充整个数组。该方法会更改原数组,返回值是被填充后的数组。
Array(3).fill('LOVE').join('') // "LOVELOVELOVE"
该片段的运行方式很简单,其创建一个包含 3 个空项的新数组,在每个空项中填充 'LOVE'
,将所有元素连接成一个字符串。
一个更短的快捷方式是仅使用 join
方法来重复字符串。
Array(4).join('LOVE') // 'LOVELOVELOVE'
Array.from()
用于将类数组对象或可迭代对象转化为数组。
一个类数组对象必须含有 length
属性,且元素属性名必须是数值或者可转换为数值的字符。我们正好可以利用这一点。
我们将 length
属性设置为 3,使用 from()
方法初始化数组,每个位置对应一个 undefined
。如下所示:
Array.from({ length: 3 }) // [undefined, undefined, undefined]
现在我们使用第二个参数,这是一个 map
函数,它将调用数组的每个元素。在这里,我们用 'LOVE'
替换所有的 undefined
。
Array.from({ length: 3 }, () => 'LOVE') // ['LOVE', 'LOVE', 'LOVE']
最后我们调用 join()
方法将数组中的所有元素组合成一个字符串。
Array.from({ length: 3 }, () => 'LOVE').join('') // 'LOVELOVELOVE'