You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript中如何按数值范围初始化数组无需逐个罗列元素?

TypeScript 初始化连续数值数组的方法

TypeScript 本身未内置 [n..m] 这类范围语法糖,但可以通过以下几种简便方式实现同等效果,无需逐个声明元素:

  • 方法1:直接使用 Array.from 实现
    一行代码即可生成包含两端数值的连续数组,示例(生成5到8的连续数组):

    const lst: number[] = Array.from({length: 8 - 5 + 1}, (_, index) => 5 + index);
    

    其中8 - 5 +1是计算数组总长度,回调函数通过索引累加起始值得到对应位置的数值。

  • 方法2:结合数组keys()迭代器实现
    写法如下:

    const lst: number[] = [...Array(8 - 5 + 1).keys()].map(index => 5 + index);
    

    逻辑是先通过keys()拿到数组索引的迭代器,展开为索引数组后再通过map加上起始值偏移量。

  • 方法3:封装为复用工具函数
    如果频繁需要生成连续数组,可以封装成通用的range函数:

    // 工具函数,生成[start, end]闭区间的连续数值数组
    function range(start: number, end: number): number[] {
      if (end < start) return [];
      return Array.from({length: end - start + 1}, (_, index) => start + index);
    }
    
    // 调用示例,效果和你预期的[5..8]完全一致
    const lst: number[] = range(5, 8); // 输出 [5,6,7,8]
    

以上所有实现都兼容ES6及以上版本的编译目标,是TypeScript项目中的常用写法。

内容的提问来源于stack exchange,提问作者chris01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 12:54:09