for 循环

最先想到的应该就是使用 for 循环重复字符串了吧!

const str = 'LOVE'
const arr = []

for (let i = 1; i <= 3; i++) {
  arr.push(str)
}

arr.join('') // 'LOVELOVELOVE'

String.prototype.repeat()

String.prototype.repeat() 方法构造并返回一个新字符串,该字符串包含指定的副本数。

'LOVE'.repeat(3) // 'LOVELOVELOVE'
'Hey'.repeat(2) // 'HeyHey'
'Hi'.repeat(0) // ''

Array.prototype.fill()

Array.prototype.fill() 方法将数组中的所有元素更改为静态值,从起始索引(默认 0)到结束索引(默认 array.length)。它返回修改后的数组。

Array(3)
  .fill('LOVE')
  .join('')

// "LOVELOVELOVE"

该片段的运行很简单:创建一个包含3个空项的新数组,在每个空项中填充 LOVE,将所有元素连接成一个字符串

Array.prototype.join()

一个更短的快捷方式是仅使用 join 方法来重复字符串。

Array(4).join('LOVE') // 'LOVELOVELOVE'

Array.from

Array.from() 用于将类数组对象或可迭代对象转化为数组。

一个类数组对象必须含有 length 属性,且元素属性名必须是数值或者可转换为数值的字符。我们正好可以利用这一点。

我们将 length 属性设置为 3,使用 from() 方法初始化数组,每个位置对应3个 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'