js实现二维数组的排列组合,js多维数组的排列组合算法

2018-06-22 16:43

阅读:4169

一段实用的js代码片段,特别适合使用在需要排列组合的前端页面。

如在编辑商品时,商品多规格组合成sku就可使用该js代码实现排列组合。

//二维数组排列组合
//eg:[[[x1],[x2]],[[y1],[y2]],[[z1],[z2]]]]
function doExchange(doubleArrays){
    var array = doubleArrays;
    var len = array.length;
    var results = [];
    var indexs = {};
    function specialSort(start) {
        start++;
        if (start > len - 1) {
            return;
        }
        if (!indexs[start]) {
            indexs[start] = 0;
        }
        if (!(array[start] instanceof Array)) {
            array[start] = [array[start]];
        }
        for (indexs[start] = 0; indexs[start] < array[start].length; indexs[start]++) {
            specialSort(start);
            if (start == len - 1) {
                var temp = [];
                for (var i = len - 1; i >= 0; i--) {
                    if (!(array[start - i] instanceof Array)) {
                        array[start - i] = [array[start - i]];
                    }
                    temp.push(array[start - i][indexs[start - i]]);
                }
                results.push(temp);
            }
        }
    }

    specialSort(-1);
    return results;
}


上一篇:

下一篇:js如何给iframe绑定事件


评论


亲,登录后才可以留言!

热门文章

推荐文章

最新文章

置顶文章