Javascript 如何从给定列表生成n个大小的列表

Javascript 如何从给定列表生成n个大小的列表,javascript,arrays,Javascript,Arrays,假设给我们一份清单 var l = [50, 55, 56, 57, 58, 60] 和一个随机数n 我需要创建一个函数,返回所有可能的长度列表n 如果n=3 [50,55,57],[50,55,58],[50,55,60],[50,57,58],[50,57,60],[50,58,60],[55,57,58],[55,57,60],[55,58,60],[57,58,60] 编辑 我无法添加完整的输出数组,因为我不知道如何生成它。假设n小于输入数组的大小,可以执行以下操作: var so

假设给我们一份清单

var l = [50, 55, 56, 57, 58, 60]
和一个随机数
n

我需要创建一个函数,返回所有可能的长度列表
n

如果
n=3

[50,55,57],[50,55,58],[50,55,60],[50,57,58],[50,57,60],[50,58,60],[55,57,58],[55,57,60],[55,58,60],[57,58,60]
编辑


我无法添加完整的输出数组,因为我不知道如何生成它。

假设
n
小于输入数组的大小,可以执行以下操作:

var soln=[]
函数GenerateListFromSize(数组,n,偏移量=0,当前=[])){
如果(当前长度==n){
soln.push(current.map(elem=>elem))
返回
} 
对于(变量i=偏移量;iconsole.log(soln)
称为递归:

 const arr = [50, 55, 56, 57, 58]

 const list = function (n, index, tempArr) {
 // Return of recursion
 if (tempArr.length == n) {
    console.log(tempArr)
    return
 }

 // Recursion
 while (index < arr.length) {
    tempArr.push(arr[index])
    list(n, ++index, tempArr)
    tempArr.pop()
 }

}

list(3, 0, [])
const arr=[50,55,56,57,58]
常量列表=函数(n,索引,tempArr){
//递归返回
if(tempArr.length==n){
console.log(tempArr)
返回
}
//递归
while(索引
到目前为止您尝试了什么?是否可以将
n
设置为大于输入数组大小?我假设不是。所需的数组并不代表您输入的解决方案。输入数组中有一个60,但没有60。n不能大于输入数组大小您的解决方案数组包含125个条目。所需数组包含10个条目。我更新了解决方案。我对所需的输出非常困惑,因为它看起来像一个不正确的输出,它有输入数组中不存在的项。这与其他解决方案有何不同?我看到了你的代码,我的想法也是一样的。只需执行一点