栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

具有置换长度参数的javascript置换生成器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

具有置换长度参数的javascript置换生成器

您可以想象长度代表插槽数。假定N是初始列表中的元素数,则每个插槽都有N种可能性。因此,给定三个值

[1,2,3]
,您将有一个总的
3 x 3 x 3 =27
排列。

这是我的尝试。包含评论!

var list = [1,2,3];var getPermutations = function(list, maxLen) {    // Copy initial values as arrays    var perm = list.map(function(val) {        return [val];    });    // Our permutation generator    var generate = function(perm, maxLen, currLen) {        // Reached desired length        if (currLen === maxLen) { return perm;        }        // For each existing permutation        for (var i = 0, len = perm.length; i < len; i++) { var currPerm = perm.shift(); // Create new permutation for (var k = 0; k < list.length; k++) {     perm.push(currPerm.concat(list[k])); }        }        // Recurse        return generate(perm, maxLen, currLen + 1);    };    // Start with size 1 because of initial values    return generate(perm, maxLen, 1);};var res = getPermutations(list, 3);console.log(res);console.log(res.length); // 27

[fiddle](http://jsfiddle.net/kD8G3/)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/595008.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号