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'