资讯专栏INFORMATION COLUMN

JS排列组合算法

xuhong / 1410人阅读

CHANGELOG

2019-07-01

init

const permutation = (source) => {
  const result = [];
  const _result = {};
  const convert = (arr, index) => {
    for (let i = 0; i < source[arr[index]].length; i++) {
      if (source[arr[index]][i]) {
        _result[arr[index]] = source[arr[index]][i]
        if (index === arr.length - 1) {
          result.push(JSON.parse(JSON.stringify(_result)));
        } else {
          convert(arr, index + 1);
        }
      }
    }
  };
  convert(Object.keys(source), 0);
  return result;
};

// 测试
permutation({
  name: ["张三","李四","王二"],
  age: [18, 16],
  sex: ["男", "女"]
});
测试结果如下

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105167.html

相关文章

  • 有关排列组合的一道算法

    摘要:有关排列组合的一道算法题一题目内容废话不多说,先上题目有一个的网格,左下角为,右上角为,规定每次只能走一步,并且方向只能是向上或者向右,求到共有多少种走法例如一个日字形的格子就是一个的网格,共有种走法并用写出程序算法。 有关排列组合的一道算法题 一、题目内容 废话不多说,先上题目: 有一个 n × m 的网格,左下角为A,右上角为B,规定每次只能走一步,并且方向只能是向上或者向右,求A...

    ephererid 评论0 收藏0
  • JS 字符串全排列算法及内存溢出

    摘要:问题给定字符串,求出所有由该串内字符组合的全排列。于是我想的办法是利用尾递归优化。算法二尾递归终止条件长度为第一次递归时,插入首字母递归截取了第一个字符的子串函数的第一个参数是本次递归的字符串,第二个参数是前个字符的全排列结果。 问题 给定字符串,求出所有由该串内字符组合的全排列。所包含的字符不重复。 输入:abc 输出:[abc,acb,bac,bca,cab,cba] 我在实现算法...

    sihai 评论0 收藏0
  • 求非负元素数组所有元素能组合的最大字符串

    摘要:寻找非零元素数组中所有元素排列组合后的最大值待排序数组排序方法参数校验排序算法快速排序冒泡排序拼接用例测试这里只对快速排序方法使用组测试用例并列举如下。 首发于 樊浩柏科学院 问题叙述:将一个非负元素数组中的所有元素排列组合在一起,找出值最大的那个排列情况。例如 [0, 9, 523, 94, 10, 4],排列组合后值最大数为:9945234100。 showImg(https:/...

    xiongzenghui 评论0 收藏0
  • 前端也需要好好的精进自己的算法

    摘要:算法前端发展的再快,也不要忘记精进自己的算法,算法是灵魂和核心。我会把我刷过的算法题总结归类,不断完善。 算法 前端发展的再快,也不要忘记精进自己的算法,算法是灵魂和核心。我会把我刷过的算法题总结归类,不断完善。欢迎大家关注。 数组和堆栈 数组去重 旋转数组 如何快速找出两个数之和等于某一个值的两个数? 快排 排序算法大总结 快速找到数组中的最大值 多维数组的展开 二分查找 有效的括...

    hersion 评论0 收藏0
  • July 算法习题 - 字符串4(全排列和全组合

    摘要:求字符串的全排列字符串的全排列设计一个算法,输出一个字符串字符的全排列。的做法没有结果的,都是在一个字符串上进行的操作。字符串的全组合输入三个字符,则它们的组合有。因此可以循环字符串长度,然后输出对应代表的组合即可。 求字符串的全排列 字符串的全排列 设计一个算法,输出一个字符串字符的全排列。 比如,String = abc 输出是abc,bac,cab,bca,cba,...

    tuniutech 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<