首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >确保Javascript中的“随机”3位数字

确保Javascript中的“随机”3位数字
EN

Stack Overflow用户
提问于 2017-05-11 18:21:55
回答 6查看 18.9K关注 0票数 5

我正在尝试使用以下函数创建3数字随机数:

代码语言:javascript
复制
gridView.generateData = function( size ) {

        var newData = [];

        var size = size || 100;
        var baseSize = 0;

        while( baseSize < size ) {
            baseSize++;
            newData.push( {
                "mk" : Math.floor( Math.random()*999 ) + 100 //3 digit
            } );
        }       
        return $q.all( newData );
    }

但在输出object中,我看到有许多实例的数字为4。如何使用上述功能只为3数字投保?

提前谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-05-11 19:30:06

如果你想生成100 - 999之间的3位随机数,你可以尝试下面的解决方案

代码语言:javascript
复制
Math.floor(Math.random()*(999-100+1)+100);
票数 14
EN

Stack Overflow用户

发布于 2017-05-11 18:55:31

你可以使用一个变量来表示数字。然后构建数字的10次幂otu,并将该数字作为因子和值进行相加,以从右侧获得带切片的数字。

稍后,您可以返回一个带有数值或结果的其他格式的obejct。

代码语言:javascript
复制
function generateData(size) {
    var digits = 3;
    return Array.apply(null, { length: size || 100 }).map(function () {
        return Math.floor(Math.random() * Math.pow(10, digits) + Math.pow(10, digits)).toString().slice(-digits);
    });
}

console.log(generateData());
代码语言:javascript
复制
.as-console-wrapper { max-height: 100% !important; top: 0; }

票数 2
EN

Stack Overflow用户

发布于 2020-05-03 17:27:46

我不得不面对几乎相同的问题(生成范围从"000“到”999“的”某些东西“),并决定使用:

代码语言:javascript
复制
var round = 10;
while( round > 0 ) {
    round--;
    console.log( Math.random().toString().concat("0".repeat(3)).substr(2,3) );
}                

应该记住,Math.random()返回一个介于0(含)和1(不含)之间的随机数。你可能会得到"0.001“甚至"0.0001”(也就是小数部分有很多前导零),所以乘以1000或999不会得到我想要的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43912703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档