首页 > web前端 > js教程 > 如何在 JavaScript 中生成整数数组的排列?

如何在 JavaScript 中生成整数数组的排列?

Patricia Arquette
发布: 2024-12-15 01:31:11
原创
525 人浏览过

How Can I Generate Permutations of an Integer Array in JavaScript?

JavaScript 中的排列

当面对为整数数组生成排列的任务时,最简单的方法是使用递归算法。给定的代码片段中介绍了一种旨在处理字符串的算法。然而,当尝试调整此算法以处理整数数组时,由于方法对不同数据类型的操作方式存在差异,因此出现了挑战。

为了解决此问题,需要对该算法进行修改版本,它考虑了整数的特定行为。下面介绍的一种优雅的解决方案包含了以下注意事项:

function permutator(inputArr) {
  var results = [];

  function permute(arr, memo) {
    var cur, memo = memo || [];

    for (var i = 0; i < arr.length; i++) {
      cur = arr.splice(i, 1);
      if (arr.length === 0) {
        results.push(memo.concat(cur));
      }
      permute(arr.slice(), memo.concat(cur));
      arr.splice(i, 0, cur[0]);
    }

    return results;
  }

  return permute(inputArr);
}
登录后复制

该算法对输入数组的副本进行操作,确保原始数组保持不变。它递归地探索所有可能的组合并将排列存储在数组的数组中。

或者,也可以使用此算法的 ES6 (2015) 版本:

const permutator = (inputArr) => {
  let result = [];

  const permute = (arr, m = []) => {
    if (arr.length === 0) {
      result.push(m)
    } else {
      for (let i = 0; i < arr.length; i++) {
        let curr = arr.slice();
        let next = curr.splice(i, 1);
        permute(curr.slice(), m.concat(next))
      }
    }
  }

  permute(inputArr)

  return result;
}
登录后复制

此版本使用箭头函数和默认参数值以获得更简洁的语法。功能保持不变,为提供的数组生成排列。

以上是如何在 JavaScript 中生成整数数组的排列?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板