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

如何修正JavaScript随机年份生成代码以获取1900-2018数值?

修正随机年份生成函数的问题

嘿,我一眼就看出问题出在你的getNumber函数逻辑上啦!当前的写法根本没办法生成你想要的1900~2018区间的数值,咱们来一步步解决:

问题根源

你现在的getNumber函数是这么写的:

function getNumber(start, end) { return Math.floor(Math.random() * end) + start; }

这个逻辑会生成从start到start + end之间的随机数(比如你传1900和2018,会得到1900~3918的数),完全偏离了你要的区间。

正确的随机整数生成公式

要生成**包含两端的闭区间[min, max]**的随机整数,正确的公式是:

Math.floor(Math.random() * (max - min + 1)) + min

解释一下:

  • max - min + 1是区间内的总整数个数(比如2018-1900+1=119个数)
  • Math.random() * 总数会得到0到总数(不包含总数)的随机浮点数
  • 用Math.floor()取整后得到0到总数-1的整数
  • 最后加上min,就把范围平移到了min到max的区间

修正后的完整代码

把getNumber函数改成下面这样就可以了:

function getNumber(min, max) { 
    return Math.floor(Math.random() * (max - min + 1)) + min; 
}
function generate(n){
    var result = [];
    for(let i = 0; i < n; i++){
        let YEAR = getNumber(1900,2018);
        result.push(YEAR);
    }
    console.log(result);
}
generate(10);

现在调用generate(10),就能得到10个1900到2018之间(包含1900和2018)的随机年份啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:54:02