首页 > web前端 > js教程 > 如何从 JavaScript 数组生成值的所有组合(笛卡尔积)?

如何从 JavaScript 数组生成值的所有组合(笛卡尔积)?

DDD
发布: 2024-11-03 16:19:02
原创
792 人浏览过

How to Generate All Combinations (Cartesian Product) of Values from JavaScript Arrays?

查找 JavaScript 数组值的所有组合(笛卡尔积)

在 JavaScript 中从多个数组生成值的所有组合可以通过以下方式实现:笛卡尔积的概念。实现方法如下:

笛卡尔积的递归


要生成所有组合,我们可以使用迭代的递归函数每个数组并组合所有数组中的元素。

以下是查找多个数组的笛卡尔积的递归函数示例:



function allPossibleCases(arr) {
if (arr.length == 1) {
return arr[0];
登录后复制

} else {

var result = [];
var allCasesOfRest = allPossibleCases(arr.slice(1)); // recur with the rest of array
for (var i = 0; i < allCasesOfRest.length; i++) {
  for (var j = 0; j < arr[0].length; j++) {
    result.push(arr[0][j] + allCasesOfRest[i]);
  }
}
return result;
登录后复制

}
}



使用示例


假设您有三个数组:

var 第二 = ['c'],<br>var 第三 = ['d', 'e', 'f'];

使用 allPossibleCases 函数,您可以生成所有组合,如下所示:




var allArrays = [第一、第二、第三];<br>console.log(allPossibleCases(allArrays));



这将输出以下组合:

acd
ace
acf
bcd
bce
bcf
azd
aze
azf
bzd
bze
bzf
登录后复制

注意:每个组合中元素的顺序可能会根据 allArrays 变量中数组的顺序而有所不同。

以上是如何从 JavaScript 数组生成值的所有组合(笛卡尔积)?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
上一篇:如何将 HTML 内容动态插入到我的 React 组件中? 下一篇:如何使用HTML5本地存储区分浏览器刷新和关闭?
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
相关专题
更多>
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板