我正在尝试使用以下函数创建3
数字随机数:
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
数字投保?
提前谢谢。
发布于 2017-05-11 19:30:06
如果你想生成100 - 999之间的3位随机数,你可以尝试下面的解决方案
Math.floor(Math.random()*(999-100+1)+100);
发布于 2017-05-11 18:55:31
你可以使用一个变量来表示数字。然后构建数字的10次幂otu,并将该数字作为因子和值进行相加,以从右侧获得带切片的数字。
稍后,您可以返回一个带有数值或结果的其他格式的obejct。
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());
.as-console-wrapper { max-height: 100% !important; top: 0; }
发布于 2020-05-03 17:27:46
我不得不面对几乎相同的问题(生成范围从"000“到”999“的”某些东西“),并决定使用:
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不会得到我想要的结果。
https://stackoverflow.com/questions/43912703
复制相似问题