您的位置:首页 > Web前端 > JavaScript

12个字母任选5个进行排列组合,不可重复 javascript 递归实现

2014-03-24 11:01 585 查看
// 12个字母任选5个进行排列组合,不可重复

var array = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L'];

var len = array.length;

var result = [];

// for (var i = 0; i < len; i++) {

// for (var j = i+1; j < len; j++) {

// for (var k = j+1; k < len; k++) {

// for (var m = k+1; m < len; m++) {

// for (var n = m+1; n < len; n++) {

// var tm = [array[i],array[j],array[k],array[m],array
];

// result.push(tm);

// }

// }

// }

// }

// }

// console.log(result);

var indexs = {};

function recursionSub(ind, start) {

    start++;

    if (start > 4) {

        return;

    }

    if (!indexs[start]) {

        indexs[start] = 0;

    }

    for (indexs[start] = ind; indexs[start] < len; indexs[start]++) {

        recursionSub(indexs[start] + 1, start);

        if (start == 4) {

            var temp = [];

            for (var i = 4; i >= 0; i--) {

                temp.push(array[indexs[start - i]]);

            }

            result.push(temp);

        }

    }

}

recursionSub(0, -1);

console.log(result);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息