Javascript 用独特的元素填充数组-如何复制它以获得所有可能的订单?

Javascript 用独特的元素填充数组-如何复制它以获得所有可能的订单?,javascript,arrays,algorithm,sorting,topological-sort,Javascript,Arrays,Algorithm,Sorting,Topological Sort,这是我在这里的第一个问题,我想答案将是一小段代码 假设我有一个任意长度的填充数组,其中包含唯一的元素: let a = [A,B,C] 我的问题是,, 我如何处理数组,这样我就有了一个列表或x个数组,它们显示了上面数组中这些元素的所有可能顺序 比如: 到目前为止,我还没有真正的想法,并试图在网上查找 谢谢你的回答 递归思想是: function order(list, ans){ let size = list.length; if(size == 0){ co

这是我在这里的第一个问题,我想答案将是一小段代码

假设我有一个任意长度的填充数组,其中包含唯一的元素:

let a = [A,B,C]
我的问题是,, 我如何处理数组,这样我就有了一个列表或x个数组,它们显示了上面数组中这些元素的所有可能顺序 比如:

到目前为止,我还没有真正的想法,并试图在网上查找

谢谢你的回答

递归思想是:

function order(list, ans){
    let size = list.length;
    if(size == 0){
        console.log(ans);
        return;
    }
    for(var i = 0; i < size; i++){
        let first = list.shift();
        order(list, ans + `${first},`);
        list.push(first);
    }
}
功能顺序(列表、ans){
让size=list.length;
如果(大小==0){
控制台日志(ans);
返回;
}
对于(变量i=0;i
基本上,对于每个元素,您都将其设置为第一个元素,并递归地对列表的其余部分执行相同的操作。

递归思想是:

function order(list, ans){
    let size = list.length;
    if(size == 0){
        console.log(ans);
        return;
    }
    for(var i = 0; i < size; i++){
        let first = list.shift();
        order(list, ans + `${first},`);
        list.push(first);
    }
}
功能顺序(列表、ans){
让size=list.length;
如果(大小==0){
控制台日志(ans);
返回;
}
对于(变量i=0;i
基本上,对于每个元素,都将其设置为第一个元素,然后递归地对列表的其余部分执行相同的操作。

我在线找到了此指南:我在线找到了此指南: