javascript - 从数组中随机选取多个

标签 javascript arrays function random return

我写了这个函数:

function randomProduct(num) {
  var iter = num;
  for (var i = 0; i < iter; i++) {
    var rand = recommendedProducts[Math.floor(Math.random() * recommendedProducts.length)];
    return rand
  }
}

应该从 recommendedProducts 数组中提取,但是调用函数时需要很多。所以基本上 randomProduct(1)拉 1randomProduct(4)拉 4,等等。

但是,无论我在通过控制台测试时输入什么数字,我总是只返回 1 个数组项。

console.log(randomProduct(1));
console.log(randomProduct(2));
console.log(randomProduct(3));
console.log(randomProduct(4));

我做错了什么?

最佳答案

试试这个:

function randomProduct(num) {
    var iter = num;
    var rand ="";
    for (var i = 0; i < iter; i++) {
    rand += recommendedProducts[Math.floor(Math.random() * recommendedProducts.length)];
    }
    return rand

 }

正如 @Steve Medley 所说,结果预计是字符串。因此,如果推荐产品包含一些字符串,您应该在循环的每次迭代中将此字符串添加到结果中,并在循环完成后返回它(这也是我从问题中理解的)

关于javascript - 从数组中随机选取多个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38289372/

相关文章:

javascript - 使用 JS 缩放和居中 SVG

javascript - 批评我的 JavaScript 搜索数组函数

javascript - 如何生成 Azure 表授权 token 以在我的 javascript 文件中使用

objective-c - 将 NSMutableArray 保存到磁盘

php - 数组内的foreach循环

swift - let someThing = {} 是什么意思?

javascript - 使用 javascript 在页面中搜索链接文本

python - 如何将时间序列数据输入自动编码器网络进行特征提取?

python - 在导入函数 python 中使用用户生成的变量

javascript - 在复杂例程中使用多个值的最简洁方法?