Skip to content

Latest commit

 

History

History
70 lines (45 loc) · 2.24 KB

重复字符串的多种方法.md

File metadata and controls

70 lines (45 loc) · 2.24 KB

重复字符串的多种方法

重复字符串的方式有多种方法,下面介绍几种简短的方式。

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() 方法可以用指定的值填充整个数组。该方法会更改原数组,返回值是被填充后的数组。

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() 方法初始化数组,每个位置对应一个 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'