js 数组全排列组合算法

JavaScript实现全排列组合算法
本文介绍了一种JavaScript实现数组全排列组合的算法。通过递归的doCombinationCallback函数,遍历数组并生成所有可能的组合。最终将所有组合存储在totalArr中。示例代码展示了如何对包含多维元素的数组进行全排列组合操作。

function doCombination(arr) {
    var count = arr.length - 1; //数组长度(从0开始)
    var tmp = [];
    var totalArr = [];// 总数组

    return doCombinationCallback(arr, 0);//从第一个开始
    //js 没有静态数据,为了避免和外部数据混淆,需要使用闭包的形式
    function doCombinationCallback(arr, curr_index) {
        for(val of arr[curr_index]) {
            tmp[curr_index] = val;//以curr_index为索引,加入数组
            //当前循环下标小于数组总长度,则需要继续调用方法
            if(curr_index < count) {
                doCombinationCallback(arr, curr_index + 1);//继续调用
            }else{
                totalArr.push(tmp);//(直接给push进去,push进去的不是值,而是值的地址)
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值