从循环中返回多个数字

时间:2017-09-18 16:13:05

标签: javascript loops

我想创建一个从100中返回50个随机数的函数。如果我编写console.log(getMines),它将返回所有50个数字。但如果我想实际使用它们,我的循环只返回一个数字。有什么问题?

var getMines = function() {
    for (count; count <= 100; count++) {
        return "d" + (Math.floor(Math.random() * 50));
    }
}

6 个答案:

答案 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循环。

&#13;
&#13;
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;
&#13;
&#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());