使用 Array.from创建数组。

创建固定长度的数组

可以使用 Array.from API 来创建数组,这个API接受一个类数组的数据或者可迭代的数据作为首个参数,第二个参数接受一个 mapFunction 来对输入的数据进行处理。

  1. const initArray = (num: number) =>
  2. Array.from({ length: num }, (_, i) => i)

这样我们就可以初始化一个固定长度的数组,例如输入5,则返回 [1, 2, 3, 4, 5] 的结果。

创建特定步长值的数组

此函数我们需要传入三个参数,分别是开始和结束值以及设定的步长值。

  1. const genStepArray = (start: number, end: number, step: number) => {
  2. // 包含终末值,所以+1
  3. const len = Math.floor((end - start) / step + 1)
  4. return Array.from({ length: len }, (_, i) => start + i * step)
  5. }

生成字母表数组

利用字母字符串的 ASCII 码来生成特定长度的数字数组,然后再使用 String.fromCharCode 来进行转换。

  1. type Alhpabet = string
  2. const genAlphabet = (start: Alphabet, end: Alphabet) => {
  3. return genStepArray(start.charCodeAt(0), end.charCodeAt(0), 1).map(
  4. (i: number) => String.fromCharCode(i - 32)
  5. )
  6. }
  7. genAlphabet('a', 'z') // ['A', 'B' ... 'Z']