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

如何在JavaScript中按特定规律生成包含10的倍数的数字序列?

实现指定规律的数字序列(JavaScript)

我来分享几个符合你需求的实现方案,完全匹配你描述的序列规律:

思路拆解

这个序列的核心规律可以分成两个部分:

  • 初始段:直接输出1到10的连续整数;
  • 循环扩展段:从量级10开始,依次生成2*量级到9*量级的数,随后输出量级*10作为下一个量级的基准,不断重复这个逻辑。

方案1:生成器函数(按需生成,适合无限序列)

如果需要处理无限延伸的序列,或者不想一次性生成所有值占用内存,用ES6的生成器函数是最佳选择:

function* generateSpecialSequence() {
    // 输出初始的1-10
    for (let num = 1; num <= 10; num++) {
        yield num;
    }

    // 循环生成后续的量级序列
    let currentScale = 10;
    while (true) {
        // 生成2*currentScale 到 9*currentScale
        for (let multiplier = 2; multiplier <= 9; multiplier++) {
            yield multiplier * currentScale;
        }
        // 升级到下一个量级并输出
        currentScale *= 10;
        yield currentScale;
    }
}

使用示例

比如要获取前30个序列值:

const generator = generateSpecialSequence();
const first30Items = Array.from({ length: 30 }, () => generator.next().value);
console.log(first30Items);
// 输出结果:[1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100,200,300,400,500,600,700,800,900,1000,2000,3000]

方案2:生成到指定最大值的序列

如果只需要生成到某个具体的上限值(比如5000),可以用这个函数:

function generateSequenceUpTo(maxLimit) {
    const sequence = [];

    // 处理初始段1-10
    for (let num = 1; num <= 10; num++) {
        if (num > maxLimit) break;
        sequence.push(num);
    }
    if (10 >= maxLimit) return sequence;

    // 处理后续量级段
    let currentScale = 10;
    while (true) {
        // 生成2到9倍当前量级的数
        for (let multiplier = 2; multiplier <= 9; multiplier++) {
            const num = multiplier * currentScale;
            if (num > maxLimit) return sequence;
            sequence.push(num);
        }
        // 升级量级并检查是否超限
        currentScale *= 10;
        if (currentScale > maxLimit) return sequence;
        sequence.push(currentScale);
    }
}

使用示例

// 生成到5000的序列
const upTo5000 = generateSequenceUpTo(5000);
console.log(upTo5000);
// 输出会包含到5000的所有符合规律的数值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 09:37:31