js实现1到8的八位数不重复组合

实现1到8的八位数不重复组合,并且组合后的每个整数中没有重复的数字,例如12345678,87654321,32145678,共有40320种

		let arr = [1, 2, 3, 4, 5, 6, 7, 8];
        let num = new Array();
        for (let i = 0; i < 8; i++) { 
            for (let j = 0; j < 8; j++) { 
                if (arr[i] == arr[j]) continue;
                for (let k = 0; k < 8; k++) { 
                    if (arr[j] == arr[k] || arr[i] == arr[k]) continue;
                    for (let a = 0; a < 8; a++) { 
                        if (arr[a] == arr[i] || arr[a] == arr[j] || arr[a] == arr[k]) continue;
                        for (let b = 0; b < 8; b++) { 
                            if (arr[b] == arr[i] || arr[b] == arr[j] || arr[b] == arr[k] || arr[b] == arr[a]) continue;
                            for (let c = 0; c < 8; c++) { 
                                if (arr[c] == arr[i] || arr[c] == arr[j] || arr[c] == arr[k] || arr[c] == arr[a] || arr[c] == arr[b]) continue;
                                for (let d = 0; d < 8; d++) { 
                                    if (arr[d] == arr[i] || arr[d] == arr[j] || arr[d] == arr[k] || arr[d] == arr[a] || arr[d] == arr[b] || arr[d] == arr[c]) continue;
                                    for (let e = 0; e < 8; e++) { 
                                        if (arr[e] == arr[i] || arr[e] == arr[j] || arr[e] == arr[k] || arr[e] == arr[a] || arr[e] == arr[b] || arr[e] == arr[c] || arr[e] == arr[d]) continue;
                                        let curnum = arr[i] * 10000000 + arr[j] * 1000000 + arr[k] * 100000 + arr[a] * 10000 + arr[b] * 1000 + arr[c] * 100 + arr[d] * 10 + arr[e];
                                        num.push(curnum);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    原文作者:皮一下就很开心、
    原文地址: https://blog.csdn.net/simpleasong/article/details/116677609
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞