我想创建一个从100中返回50个随机数的函数。如果我编写console.log(getMines),它将返回所有50个数字。但如果我想实际使用它们,我的循环只返回一个数字。有什么问题?
var getMines = function() {
for (count; count <= 100; count++) {
return "d" + (Math.floor(Math.random() * 50));
}
}
答案 0 :(得分:3)
您只能从函数返回单个值。因此,一旦您返回第一个数字,循环基本上就结束了。
试试吧!
var getMines = function() {
var minesArray = [];
for (var count=0; count <= 100; count++) {
minesArray.push("d" + (Math.floor(Math.random() * 50)));
}
return minesArray;
}
这将返回所有数字的数组,然后您可以迭代完成所需的数字。您可以对数字进行排序,或对它们求和等。
我觉得我应该指出你的代码返回1到50之间的100个随机数,而不是1到100之间的50个随机数。如果那就是你想要的,你在OP nbd中错过了,但如果你想要随机50 1到100之间的数字将计数更改为&lt; = 50并将Math.random()乘以100。
答案 1 :(得分:2)
你需要创建一个var并推送randoms,比如这个
var getMines = function() {
var returnArray = [];
for (var count = 0; count <= 100; count++) {
returnArray.push("d" + (Math.floor(Math.random() * 50)));
}
return returnArray;
}
答案 2 :(得分:2)
你只能从一个函数返回一次,你可以使用一个数组或对象,将所有值添加到它并返回它。
var getMines = function() {
var arr = [];
for (count; count <= 100; count++) {
arr.push("d" + (Math.floor(Math.random() * 50)));
}
return arr;
}
答案 3 :(得分:2)
如果我正确地读了你的问题,你需要50个数字,其中随机数为100。
您需要切换for
循环中的数字和获取随机数的因子,并为循环变量取初始值零,并且不返回{{1循环。
for
&#13;
var getMines = function() {
var count,
array = [];
for (count = 0; count < 50; count++) {
array.push("d" + (Math.floor(Math.random() * 100)));
}
return array;
}
console.log(getMines());
&#13;
答案 4 :(得分:2)
这也可以通过一些很酷的ES6技巧来完成:
const getMines = ()=> Array.from(
{length:50},
()=> "d" + Math.floor( Math.random() * 100 )
);
答案 5 :(得分:2)
如果您需要1到100之间的任意随机数50(包括两者),我已将您的版本调整为以下内容。看看是否有帮助。
var getMines = function() {
var nums = [];
for (var count=1; count <= 50; count++) {
nums[count-1]=Math.floor(Math.random() * 100) + 1;
}
return nums;
}
console.log(getMines());